Đang tải hình ảnh hoãn lại - Plugin tải lười cho WordPress. Cách tốt nhất để giải quyết các plugin cho ứng dụng php slugggish plugin php

  • 20.06.2020

Tệp chức năng - Trợ lý giải trí trong việc mở rộng chức năng của trang web! Thật vậy, nếu được sử dụng cho mục đích dự định của nó, tuy nhiên, nhiều chủ sở hữu blog / trang web tuyệt vời chuyển sang chức năng.php cho nhóm Salonka.

Trong mọi trường hợp, có khả năng và hạn chế (hạn chế, thường xuyên logic hơn) và do đó một số mã thực thi, được thiết kế để điều chỉnh các tham số của kernel WP (không phải chủ đề), chính xác hơn từ mẫu ...

Khi cuộc trò chuyện đang hiện đại hóa chức năng của trang web, trong dòng sản phẩm "không có plugin ..." chắc chắn khuyên bạn nên đẩy tất cả các khối mã vào hàm huyền thoại.php. Nó không đúng!

Tất cả các tiện ích mở rộng hoàn toàn kỹ thuật (không liên quan đến mẫu kiểu trực tiếp) logic hơn để chuyển các trình cắm được tổ chức để đăng ký.

Tạo ra nó! Và cũng trần về những lợi thế và điểm trừ (KoIM ít hơn đáng kể) ...


Các phần bài viết:

cách tạo plugin của bạn

trong văn bản dưới đây, chúng ta tìm hiểu cách tạo plugin của riêng bạn như bàn tay: Xử lý tất cả các chi tiết, sắc thái. Chúng tôi tìm hiểu những gì các ưu và nhược điểm (trừ ít hơn !! Và đúng hơn, nó không hoàn toàn bất lợi, mà là một hoặc tính khả thi khác đối với mỗi quản trị viên)

sự khác biệt giữa tệp hàm.php từ plugin là gì

Tại sao một số mã liên quan trực tiếp đến chức năng trang web, chuyển sang một plugin riêng?

Tệp chức năng nhất, mục tiêu và ngoại hình của nó không khác gì so với plugin (đơn giản là - plugin trong chủ đề))! - Nhiệm vụ chính của nó là làm phong phú thêm chức năng hữu ích (hoạt động).

Ví dụ: "Điều hướng", trong đó một cách logic, menu của các nút được trang trí CSS, tương ứng, kiểu của chủ đề hoạt động - có thể đúng hơn để rời khỏi gốc của mẫu.

Lợi ích - chia tệp chức năng để tách các tệp hoặc một plugin riêng biệt là gì?

Ví dụ, tỷ lệ ban bình nhất - bạn đã quyết định thay đổi mẫu !? ... Kết quả là - tất cả các phát triển chức năng sẽ biến mất, vì toàn bộ mã hữu ích được đặt trong tệp hàm (tôi thấy kích thước tệp 750klo như vậy)

Tất nhiên, bạn có thể chuyển tài liệu của các chức năng thành một chủ đề mới, nhưng - tách tất cả mọi thứ, mà không có chỉnh sửa, lấy đi rất nhiều thời gian hữu ích, không thể làm: Khỉ và làm việc)

Và sau đó:

tải tập tin trang web

Tóm tắt: Quy trình tải xuống các tệp Kernel trang web trong ví dụ của chúng tôi là các plugin trang hoạt động (từ thư mục plugin) và nội dung của chúng, sau đó tệp hàm.php có nội dung được xử lý. Đó là tất cả các mili giây, và không có khả năng có một việc nói nghiêm túc về việc giành chiến thắng tốc độ của các trang.

Mặc dù có vẻ như một trong những lý do cho một thứ tự tải được cài đặt bởi các nhà phát triển nơi vị trí thứ hai được gán cho tệp hàm (như có lẽ Phần tử dễ dàng hơn), chỉ là thực tế của việc sử dụng rộng rãi các plugin, thường là nội dung lớn ...

Ai đó kêu lên: một plugin khác ...? nó khó!

Và tôi nói, không có tốc độ nó sẽ không ảnh hưởng đến ... thay vào đó, ngược lại, nếu nó là chu đáo để tạo ra một trang web.

Hơn nữa, lợi ích của việc chuyển mã một số mã là hiển nhiên, cụ thể là, tốc độ tải trang web phụ thuộc vào số lượng trình cắm tích cực, nhưng từ nội dung của chúng! Vậy tại sao không giảm tập tin chức năng mà như đã đề cập, được tải một chút sau ..? Và bên cạnh đó, nó là một mức độ đầy đủ các trình cắm thêm đầy đủ lớn! Vậy nơi nào là hầu hết mã của mình?

Theo tôi, mẫu (hoạt động, hoạt động) phải chỉ chứa các tham số của nó liên quan đến cụ thể.

chuyến tham quan đến số học ...

  1. nó được tải sau, nó được hỏi tại sao không chuyển nơi xử lý mã chủ yếu được thực hiện, và, tương ứng, được đặt bởi các quản trị viên của các tham số hạt nhân WP sẽ đọc nhanh hơn và được xử lý ở giai đoạn tương ứng của Startup.
  2. tính khả thi khét tiếng và tổ chức logic của chức năng trang web.
  3. các tiện nghi không quan trọng!

Ngoài ra, như đã nói, tệp chức năng là cùng một plugin, tôi sẽ hỏi lại, tại sao mọi thứ trong anh ta xô đẩy anh ta? Và trong quá trình làm việc với trang web, bối rối trong một tài liệu rất lớn, khó đọc tài liệu, nhân tiện, là vô cùng và không thể thông minh sẽ đối phó với nội dung của nó.

Nó dễ dàng và logic hơn để tạo một plugin ánh sáng, thiết lập và quên ...

Nói tóm lại, mọi người quyết định: lắng nghe kinh nghiệm của mình, hoặc cho ý kiến \u200b\u200bcủa tác giả của một số bài viết đào tạo.

Sau đó, nó theo các thư viện WordPress, nhưng không phải bằng các bài viết ... Từ các bài viết, có thể chỉ vẽ một ý tưởng ...

Bằng cách nào đó như vậy ở đây

... Dành cho những người quan tâm:

kiểm tra tất cả các quy tắc của kernel (và, nhân tiện, các phác thảo của các thư mục tải)) có thể là tuyệt vời trong các mã WordPress.

... Trong một trong những bài viết sau đây chỉ là một chiếc Pheaker như vậy! ... và liên kết đến các trang hữu ích.


! .. Ký vào trang web cập nhật -
... Chia tay với sự thiếu hiểu biết ..!

cách tạo một plugin của một chức năng tệp bổ sung.php

Các trình cắm được đăng, tất nhiên, là một giải pháp đơn giản, nhưng nghiên cứu sẽ bắt đầu từ AZOV!

Hơn nữa, để đạt được các mục tiêu được thực hiện trong bài viết, không cần các plugin mạnh mẽ nào không cần!

Chúng tôi đi vào bảng lưu trữ của máy chủ (hoặc công cụ FTP) mở Trình quản lý tệp.

Mở thư mục Plugins và tạo một thư mục khác trong đó (thư mục cho các tệp của plugin của chúng tôi). Tên hoàn toàn là bất kỳ, bằng tiếng Latin. Tôi có tên "kiểm tra" làm ví dụ.

Xin lưu ý rằng tên của quản trị viên trình cắm sẽ được viết trong tên plugin: Tiêu đề thông tin kiểm tra (xem Nhận xét).

Mở thư mục đã tạo và tạo tệp plugin Master trong đó:

... Với tiêu đề, hãy nói các hàm của tôi.php và đưa các dòng như vậy vào cơ thể của anh ấy (và tên tệp có thể hoàn toàn có bất kỳ)

Các hàng trong nhận xét - Thông tin về plugin, sẽ xuất hiện trong Bảng quản trị (menu trình cắm thêm).

Ngay sau khi tạo một thư mục và tệp, plugin của bạn sẽ xuất hiện trong quản trị viên. Nhìn.

Là một exe, bạn có thể kích hoạt nó trong một thời gian - nhưng không có gì xảy ra, plugin vẫn không hoạt động.

Đó là tất cả!! Một plugin đơn giản đã được tạo ra và đáng chú ý, với bàn tay của chính họ để sử dụng của riêng mình (như mèo của Matroskin từng nói).

Trên bức màn này của bài thuyết trình đi xuống ...
... Ramp Dust Sad Lies ...

Nhưng nhân tiện, và điện ảnh hữu ích từ bộ phim truyền hình "không có plugin" - xem, nghĩ rằng nếu mã được đề xuất trong mã video trong tệp hàm ??

Chắc chắn, bạn đã nhiều lần gặp phải khi bạn cần thêm một số mã cho trang web của mình trên WordPress để thêm chức năng mới. Tôi nói bây giờ không phải về các kịch bản của các nhà phân tích Google mà bạn chèn vào phần tiêu đề của chủ đề của bạn. Không phải. Tôi về những mảnh nhỏ của mã mà bạn tìm thấy trên các diễn đàn trên Internet và ngay lập tức chạy để thêm chúng vào tệp của bạn chức năng.php..

Chúng ta hãy trung thực, bởi vì bạn ít nhất một lần đã làm điều đó, phải không? Và điều này là dễ hiểu, vì nó đã được viết trên diễn đàn - hãy thêm mã này trong các hàm.php chủ đề của bạn trên WordPress.

Sự thật là thêm mỗi Internet tìm thấy mã trong hàm.php - không phải lúc nào cũng biết ý tưởng tốt. Một quyết định an toàn hơn sẽ tạo plugin Mini tùy chỉnh của bạn với mã này.

Trong bài học này, chúng tôi sẽ nói, trong những trường hợp nào bạn có thể thêm mã vào hàm.php và trong đó tốt hơn là sử dụng một plugin riêng. Chúng tôi cũng cho thấy cách bạn có thể tạo một trình cắm tùy chỉnh và thêm mã của mình vào nó.

Chức năng.php là gì.

Nếu bạn đã bao giờ trèo lên các tệp của trang web WordPress, bạn có thể vấp sang một số tệp chức năng.php. Tệp chức năng.php, mà chúng ta sẽ nói về bài học này trong thư mục: wp-contenthemebach_memfertions.php.

Rõ ràng, đây là tệp rất lưu trữ tất cả các chức năng và cài đặt cho chủ đề cụ thể của bạn, hoạt động tại thời điểm này. Hãy chú ý đến từ "hoạt động", bởi vì trong đó và sẽ có thông điệp chính của bài học này.

Tại sao luôn sử dụng chức năng.php là một ý tưởng tồi

Không hiểu không chính xác, sử dụng hàm.php cho các mẩu mã nhỏ trong một vài dòng - đây là một tình huống hoàn toàn bình thường. Chúng tôi đang nói về việc liệu nó không mong muốn sử dụng các hàm.php như một nhà kho để hoàn toàn tất cả các mã bạn đã thêm. Đây không phải là một giải pháp phổ quát cho bất kỳ tình huống nào.

Nguyên nhân №1.

Nếu một bản cập nhật được hiển thị cho chủ đề thiết kế của bạn, bạn sẽ mất tất cả mọi thứ bạn thêm vào tệp Chức năng.php. Tôi biết những gì bạn vừa nghĩ - nhưng nó chỉ dành cho những tình huống như vậy?

Tất nhiên có. Nhưng cũng có nhiều người không biết một chủ đề con gái là gì. Hoặc có những người đã chuyển sang bạn để được giúp thêm một đoạn mã trong chủ đề của họ.

Do đó, lý do này là trong danh sách này. Nếu bạn thêm mã vào hàm.php mà không cần sử dụng công ty con, đây là chuông báo động đầu tiên của bạn.

Nguyên nhân # 2.

Ngay cả khi bạn đặt chính xác và sử dụng một công ty con. Điều gì xảy ra nếu bạn muốn đi đến một chủ đề thiết kế khác? Tôi hy vọng bạn đã thêm một nhận xét về từng thay đổi trong tệp chức năng.php của bạn, bởi vì không có điều này, việc chuyển sang chủ đề khác sẽ cực kỳ đau đớn. Tôi nghĩ rằng bạn đã bắt được một suy nghĩ.

Nguyên nhân số 3.

Nếu bạn đã thêm mã vào hàm.php, hoàn toàn bất ngờ đã phá vỡ trang web của bạn hoàn toàn và bạn thấy một màn hình trắng trống - bạn sẽ cần một máy khách FTP để tải xuống các chức năng "hư hỏng", chỉnh sửa nó và tải về lại trang web. Niềm vui là chính mình.

Khi bạn có thể sử dụng chức năng.php

Sử dụng đúng chức năng.php cho một công ty con, hoạt động tại thời điểm này là một tùy chọn cho phép. Nhưng hãy nhớ rằng, tôi tập trung vào từ này " hoạt động"?

Nếu bạn thêm các phần mã sẽ chỉ có ý nghĩa trong việc làm việc với chủ đề này một cách cụ thể, thì bạn có thể sử dụng chức năng một cách an toàn.php (trong một công ty con). Dưới đây là một số ví dụ khi nó phù hợp:

  • Thêm một tệp kiểu khác (.css) cho chủ đề của bạn
  • Thay đổi độ dài của thông báo ghi âm (Đăng đoạn trích) để trang web trông đẹp hơn
  • Thêm phông chữ tùy chỉnh cho chủ đề hiện tại
  • Thêm tệp bản địa hóa để dịch chủ đề hiện tại

Nói cách khác, mỗi khi bạn thêm hoặc thay đổi một cái gì đó liên quan đến một chủ đề hiện tại cụ thể, bạn có thể sử dụng các hàm.php một cách an toàn.

Khi tốt hơn là làm mà không có chức năng.php

Sử dụng chức năng.php để thêm nhiều thứ và chức năng toàn cầu mà theo lý thuyết về mặt lý thuyết có thể có ích và cho một chủ đề khác - đây là một ý tưởng tồi.

Dưới đây là một vài ví dụ khi tốt hơn là làm mà không có chức năng.php:

  • Tạo các tiện ích tùy chỉnh mà bạn sẽ thường sử dụng
  • Tạo shortcodes tùy chỉnh
  • Thêm một mã không phụ thuộc vào chủ đề đăng ký (mã Google Analytics, v.v.)

Trong những trường hợp như vậy, tốt hơn là lưu mã này bất kể chủ đề thiết kế của bạn. Và bạn có thể làm điều đó với các plugin tùy chỉnh.

Bạn đã nghĩ bây giờ - phá vỡ đầu của bạn trên việc tạo một plugin khi bạn có thể chỉnh sửa chức năng.php? Nó quá khó! Hãy tin tôi, không phải vậy. Điều này được thực hiện rất dễ dàng và nhanh chóng.

Cách thiết lập một plugin tùy chỉnh thay vì chức năng.php

Để tạo plugin tùy chỉnh của bạn để lưu trữ mã của bạn, bạn cần:

  1. Tạo một tệp văn bản với mã của bạn và lưu nó dưới dạng tệp .fp
  2. Gói nhận được.php tập tin v.zip lưu trữ
  3. Đặt kho lưu trữ này dưới dạng plugin WordPress thông thường trong menu Plugin → Thêm mới

Đó là tất cả, chỉ có 3 hành động.

Bước 1. Tạo tệp.php với mã của bạn

Mở một notepad trên máy tính của bạn và chèn văn bản sau:

Tất nhiên, bạn có thể sử dụng tên của mình cho plugin trong dòng tên plugin:

Lưu tệp và cung cấp cho nó một số loại tên duy nhất để WordPress không gây nhầm lẫn plugin của bạn với cài đặt đã được cài đặt. Ví dụ: WPCafe-Custom-Chức năng.php.

Có, đừng quên khi bạn lưu để chọn loại tệp "Tất cả tệp" và thêm phần mở rộng.php:

Bước 2. Tạo.zip Lưu trữ

Tôi nghĩ rằng không có lời giải thích ở đây. Chỉ cần CREATE.ZIP Lưu trữ với tệp của bạn bất kỳ trình lưu trữ thuận tiện.

Bước 3. Cài đặt dưới dạng plugin thông thường

Phần đơn giản nhất Chỉ cần đi đến WordPress Adminka trong Plugin → Thêm mới Và tải lưu trữ của bạn là plugin thông thường nhất.

Ngay khi bạn kích hoạt nó, bạn có thể thấy plugin mới của mình trong danh sách tất cả các plugin được cài đặt khác:

Cách thêm mã của bạn

Để thêm đoạn mã của bạn, chỉ cần chèn nó vào tệp.php mà bạn đã tạo. Hoặc bạn luôn có thể tạo một plugin riêng khác cho hai chức năng khác nhau.

Ví dụ: điều này sẽ trông giống như tệp.php của bạn, nếu bạn muốn tạo một shortcode "Hello World!":

Những bình luận này không ảnh hưởng đến hiệu suất mã của bạn và tốc độ của trình cắm. Nhưng bạn sẽ dễ dàng điều hướng với họ và hãy nhớ rằng nó làm cho mọi tính năng mà bạn đã thêm.

Chỉ cần bọc bình luận của bạn trong cú pháp từ xiên và dấu hoa thị: /* bình luận của bạn */

Sau khi thực hiện các thay đổi đối với mã của bạn, bạn có thể restart.php tệp qua FTP hoặc chỉ cần tạo một kho lưu trữ một.zip mới và tải xuống dưới dạng plugin mới và xóa cũ.

Những cách khác để tránh edkes.php

Nhìn chung, nếu bạn chắc chắn đủ về khả năng của mình và biết cách thêm mã trong hàm.php, bạn không nên gặp khó khăn và với các plugin tùy chỉnh. Không có gì phức tạp ở đây.

Nhưng chúng tôi hiểu hoàn toàn tốt, nếu bạn không có mong muốn gây rối với tất cả những điều này bằng tay. Tuy nhiên, nó là WordPress. Do đó, bạn có thể sử dụng plugin mã mã miễn phí, giúp dễ dàng thêm mã bổ sung của bạn vào trang web:

Với plugin này, bạn có thể thêm các đoạn khác nhau bằng mã, hãy cung cấp cho họ tên, mô tả, kích hoạt và ngắt kết nối mã chọn lọc hoặc mã đoạn mã khác.

Một tính năng thú vị khác là bạn có thể nhập / xuất các đoạn mã của mình giữa các trang web.

CÁC KẾT QUẢ

Điều này có vẻ là trifle không đáng kể, nhưng vị trí chính xác của mã bổ sung của bạn sẽ cho phép bạn chuyển đổi giữa các chủ đề thiết kế khác mà không gặp vấn đề gì. Bạn cũng có thể bao gồm hoặc ngắt kết nối một chức năng riêng lẻ nếu bạn chia từng chức năng bổ sung giữa các plugin riêng lẻ.

Vì vậy, phương pháp này thực sự xứng đáng được chú ý.

cMS MySQL (4)

Tôi đang cố gắng tạo một hệ thống plugin cơ bản, tương tự như bạn thường tìm thấy trong CMS, chẳng hạn như WordPress. Bạn có một thư mục plugin được gắn với hoạt động hệ thống chính bằng thông báo về sự kiện S. sử dụng mẫu thiết kế Người quan sát. hoặc là Biến cố .

Vấn đề là hệ thống không thể biết với những sự kiện nào Plugin muốn hành động - do đó hệ thống sẽ tải từng plugin cho mỗi yêu cầu trang để tìm hiểu xem plugin này thực sự cần thiết thực sự cần thiết tại một số điểm hay không. Không cần phải nói, đó là rất nhiều tài nguyên được đầu tư - trong trường hợp WordPress, bổ sung thêm một số MB bộ nhớ cho mỗi yêu cầu!

Có cách khác để làm điều đó?

Ví dụ, có cách nào để tải xuống tất cả số này một lần, sau đó lưu trữ kết quả để hệ thống của bạn biết plugin để khởi động lười không? Nói cách khác, hệ thống sẽ tải tệp cấu hình trong đó tất cả các sự kiện được chỉ ra rằng plugin muốn hòa và sau đó lưu chúng vào APC hoặc một cái gì đó cho các yêu cầu trong tương lai?

Nếu nó cũng hoạt động rất tệ, thì có lẽ có một cấu trúc tệp đặc biệt có thể được sử dụng để có được các giả định hợp lý về khi một số plugin không cần thiết để thực thi truy vấn.

Đáp án.

Tôi có một công cụ quản lý trình cắm, nhưng tôi chỉ sử dụng nó với các plugin thủ tục và với tất cả các tùy chọn thường được tải ngay lập tức. Nhưng đối với API, dựa trên các sự kiện và tải xuống lười biếng, tôi có thể gửi bằng cách sử dụng các trình bao bọc nhỏ để kiểm soát các plugin và dùng đến việc tải tự động cho các phần mở rộng thực tế.

/ ** * API: bất cứ điều gì * Phiên bản: 0,1 * Tiêu đề: Ví dụ plugin * Mô tả: ... * Cấu hình: * Phụ thuộc: OtherPlegin * / $ plugin ["Title_event"] \u003d "TitleventClass"; $ plugin ["phụ"] \u003d mảng ("class2", "gọi lại"); ? \u003e.

Trong ví dụ này, tôi cho rằng API trình cắm là một danh sách đơn giản. Ví dụ này về tập lệnh Platin-Plugin-123.php không làm gì ngoài việc thêm vào mảng khi tải. Do đó, ngay cả khi bạn có một tá các tính năng trình cắm, nó sẽ chỉ dẫn đến một bổ sung bao gồm_Once cho mỗi tính năng.

Nhưng ứng dụng chính / hoặc API bổ trợ thay thế có thể chỉ cần tạo các thể hiện của các lớp đã nói (hoặc New $ EventCB; đối với RAW- Call_user_func_array hoặc call_user_func_array để gọi lại). Đổi lại, điều này sẽ dẫn đến tải tác vụ thực tế của trình tải tự động. Do đó, bạn có một hệ thống kép, trong đó một phần kiểm soát danh sách, cái còn lại là mã thực.

Do đó, tôi vẫn tưởng tượng một config.php đơn giản chỉ cần liệt kê các plugin và cài đặt như thế này:

"User / wrapper-for-htmlpurifier.php"); $ Cfg ["Khá"] \u003d 1;

Một lần nữa, có tính đến các kịch bản shell / dữ liệu, với mô tả trình cắm để kiểm soát. Bạn cũng có thể sử dụng API Register_even () thực tế và xác định một chức năng trình bao bọc bổ sung trong mỗi. Nhưng danh sách tên lớp có vẻ như tùy chọn đơn giản nhất.

Công cụ kiểm soát nói trên trông rỉ sét và xấu xí: http://milki.incclude-once.org/genericplugins/
Nhưng nó không được sử dụng nếu bạn chỉ cần một danh sách (bảng SQL) và quản lý cài đặt. Những chi phí trên cao này chỉ dành cho việc in đẹp của siêu dữ liệu trình cắm và lưu CONFIG.PHP có thể đọc được.

Cuối cùng:

spl_autoload () trong bao gồm_path và một sự kiện đơn giản-\u003e Đăng ký tên lớp, mỗi script-shell mỗi, chỉ cần bật mọi thứ cùng một lúc.

Tôi sẽ lưu tên của lớp plugin cùng với các sự kiện đã ký trong tệp cấu hình, sau đó đã lưu tệp cấu hình được phân tích trong APC, ví dụ. Sau đó, khi sự kiện bắt đầu, hệ thống có thể lười biếng để tải các lớp plug-in tương ứng khi cần thiết.

WordPress và các hệ thống CMS khác là những ví dụ rất xấu.

Chúng ta phải hiểu rằng mô-đun, hầu như luôn luôn có nghĩa là nó khó hơn.

Sơ đồ tốt nhất mà tôi từng làm việc để giải quyết tình huống này là một plugin dựa trên lớp, với thỏa thuận tên nghiêm ngặt bằng cách sử dụng trình tải tự động.

Do đó, trước khi sử dụng plugin, bạn cần tạo một thể hiện hoặc sử dụng các hàm tĩnh.

Bạn thậm chí có thể gọi plugin:

ví dụ:

"/plugins/($sparts)/(pearts ).php"); Phá vỡ; ) // ...)?\u003e

Đối với các sự kiện:

Bạn phải đăng ký sự kiện này tĩnh để tránh thay đổi động.

Cơ sở dữ liệu sẽ là nơi thích hợp cho việc này. Bạn có thể có các phương thức sự kiện và cài đặt () và gỡ cài đặt () trong lớp plugin để thêm các sự kiện nhất định hoặc phương thức ràng buộc cho các sự kiện khác. Đây là một truy vấn đến cơ sở dữ liệu và nếu bạn muốn nhận thêm từ nó, hãy thêm nó vào Memcached hoặc trong một tệp INI phẳng.

Hoạt động tốt cho tôi. Do đó, tôi đã quản lý để có được một hệ thống nặng tiêu thụ 8 MB để yêu cầu giảm tới 1 MB, với cùng một danh sách các chức năng, mà không cần lưu trữ trước đó. Bây giờ chúng ta có thể thêm nhiều tính năng hơn và duy trì hệ thống "Làm sạch"

hy vọng điều này có thể giúp cho bạn

Cách tốt nhất là bắt đầu mã hóa với họ. Mẫu thiết kế là một khái niệm tuyệt vời rất khó áp dụng, chỉ cần đọc chúng. Thực hiện một vài ví dụ về việc triển khai mà bạn tìm thấy trên Internet và tạo xung quanh họ.

Một tài nguyên tuyệt vời là trang "Dữ liệu và đối tượng". Họ duyệt các mẫu và cung cấp cho bạn cả những ví dụ khái niệm và thực tế. Tài liệu tham khảo của họ cũng tuyệt vời.

Đây là tệp chính trong chủ đề WordPress của bạn. Nằm trong / WP-Content / Themes / (Dưới đây là tên của chủ đề của bạn) /finations.php.
Nó xác định các thuộc tính quan trọng của chủ đề, các móc, ngoại hình và chức năng của nó được tùy chỉnh và một số chức năng bạn cần được thêm vào. Tệp này được tải mỗi khi bạn mở bất kỳ trang WordPress nào, để bạn có thể thay đổi bất kỳ yếu tố nào của trang web với nó. Về vấn đề này, nhiều lời khuyên a la " cách thay đổi một cái gì đó trong WordPress mà không cần plugin »Thường liên quan đến chính xác thực hiện các thay đổi trong hàm.php, thay vì tạo một trình cắm riêng biệt với chức năng này hoặc sử dụng giải pháp đã hoàn thành. Thông thường điều này dẫn đến quá tải thông tin của tệp này, mã trở nên khó tháo rời và thậm chí còn khó sửa chỉnh sửa. Nhưng đây không phải là nguy hiểm nhất. Nguy hiểm nhất là khi một cuộc khảo sát được thay đổi, một phần hoặc tất cả các chức năng trang web cần thiết sẽ biến mất.

Sự khác biệt giữa các hàm.php từ plugin

. Về bản chất, hàm.php là một loại plugin không bị không có toàn cầu, được gắn với chủ đề hiện tại. Khi nó kết nối với WordPress, bạn có thể thấy WP-Settings.php. Như có thể thấy từ mã nguồn, tải xuống của nó xảy ra sau tất cả các trình cắm, tuy nhiên, điều này không đưa ra bất kỳ nhược điểm hoặc lợi thế nào, ngoại trừ khả năng ghi đè một thứ gì đó trong các plugin được kết nối. Đối với tốc độ của mã, nó sẽ không ảnh hưởng đến bất kỳ ai. Chỉ có nội dung của plugin và hàm.php ảnh hưởng. Do đó, hãy cẩn thận khi chọn trình cắm tích cực cho chủ đề của bạn và từ bỏ không cần thiết, không cần thiết với bạn, sau đó bạn có thể dễ dàng tạo điều kiện cho trang web của mình và tăng tốc công việc của mình.

Khi bạn cần sử dụng chức năng.php

Thực hiện theo quy tắc sau: Nếu chức năng liên quan trực tiếp đến chủ đề hiện tại, nhưng không phải với trang web hoạt động, hãy viết nó vào hàm.php.

Ví dụ, nó có thể là

  • Thiết lập thu nhỏ
  • Đặt kích thước Schidbarov.
  • Đặt vị trí cho các widget
  • Thông báo về địa điểm để điều hướng Menu
  • Cài đặt chủ đề
  • Các tính năng bổ sung của chủ đề của bạn

Khi nào cần sử dụng chức năng.php

Nếu chức năng sẽ hoạt động ngay cả với sự thay đổi của một chủ đề đang hoạt động, đáng để chăm sóc việc gửi của nó cho một plugin riêng.
Điều này có thể được quy cho:

  • Định nghĩa về quầy tham dự (Google Analytiys, Yandex.metrika, LiveInetet)
  • Điều chỉnh chức năng quản trị bổ sung (ví dụ:)
  • Định cấu hình mã nguồn ()
  • Định nghĩa về shortcodes.
  • đăng ký vào

Danh sách không đầy đủ, bạn có thể tự xác định nội dung của họ cho chính mình.

Trường hợp để thực hiện mã này, nếu không có trong hàm.php? Tuy nhiên, bạn có thể viết các plugin đặc biệt cho họ, tuy nhiên, có một cách thú vị và dễ dàng hơn.

mu-plugin như một thay thế cho hàm.php

Đối với chúng tôi trong các phiên bản hiện đại của WordPress từ WordPress MU (nhiều người dùng) là chức năng thú vị, được gọi là MU plugin.. Bản chất của nó là như sau. Quản trị viên WordPress MU đôi khi cần thiết để xác định các plugin cho toàn bộ mạng của các trang web. Không thể đạt được chức năng thông thường, vì vậy họ đã giới thiệu một phần đặc biệt: / WP-NỘI DUNG / MU-plugin /, nơi chúng được xác định. Một tệp thú vị, trình cắm khác từ thư mục này được tải trước tất cả các tệp khác, điều này có thể được xác định trước một số hằng số hoặc cài đặt.
Sau đó, WPMU bị bãi bỏ, mã của nó được tích hợp với blog chính và hiện tại bất kỳ WordPress nào cũng có thể sử dụng chức năng Mu-Plugins, hiện đang được giải mã như Phải sử dụng., nghĩa là, bắt buộc để sử dụng.

Cách sử dụng Plugin Mu

Trước tiên, bạn cần tạo một phần đặc biệt / wp-nội dung / mu-pugins /
Trong đó chúng tôi đặt các tập tin trình cắm mong muốn. Không giống như các plugin thông thường, không cần thiết phải chịu được cú pháp đặc biệt và chức năng có thể được công bố trực tiếp

Ví dụ, một tệp đã được tạo với mã của quầy tham dự.
Bên trong tập tin này trông như thế này

// ... thay vì dòng này, hãy chèn mã đếm ...

Trong quản trị viên anh ấy sẽ trông giống như Cần thiết

8 trả lời

Bạn có thể sử dụng mẫu Observer. Một cách chức năng đơn giản để thực hiện điều này:

Đầu ra:

Đây là ứng dụng điên rồ của tôi 4 + 5 \u003d 9 4 * 5 \u003d 20

GHI CHÚ:

Trong ví dụ này, mã nguồn bạn phải khai báo tất cả các plugin của bạn trước mã nguồn thực tế bạn muốn mở rộng. Tôi đã bao gồm một ví dụ về cách xử lý một hoặc nhiều giá trị được truyền bởi plugin. Phần khó nhất của việc này là viết tài liệu thực tế, liệt kê các đối số nào được truyền đến mỗi hook.

Đây chỉ là một cách để tạo một hệ thống trình cắm trong PHP. Có những lựa chọn thay thế tốt nhất, tôi khuyên bạn nên làm quen với tài liệu WordPress để biết thêm thông tin.

Xin lỗi, có vẻ như những người nhấn mạnh được thay thế bằng các đối tượng Markdown HTML? Tôi có thể xuất bản mã này khi lỗi này sẽ được sửa.

Chỉnh sửa: NeverMind, chỉ xuất hiện khi bạn chỉnh sửa

Vì vậy, hãy nói rằng, bạn không cần mô hình quan sát viên, bởi vì nó yêu cầu bạn thay đổi các phương thức lớp để xử lý tác vụ nghe và muốn có điểm chung. Và giả sử bạn không muốn sử dụng gia hạn thừa kế, bởi vì bạn đã có thể kế thừa lớp học của mình từ một số lớp khác. Sẽ thật tuyệt khi có một cách chung để làm cho bất kỳ lớp học nào được kết nối mà không cần nhiều nỗ lực? Đây là cách:

_ Class \u003d get_class (& $ refobject); $ này -\u003e _ refobject \u003d $ refobject; ) Chức năng công khai __set ($ spoperty, $ hỗn hợp) ($ SPLUGIN \u003d $ này -\u003e _ Lớp. "_". $ Xảy. $ hỗn hợp);) $ này -\u003e _ refoobject -\u003e $ spoperty \u003d $ hỗn hợp;) chức năng công khai __get ($ spoperty) ($ asitems \u003d (mảng) $ này -\u003e _ refoobject; $ mixed \u003d $ asitems [$ spoperty] ; $ Splugin \u003d $ này -\u003e _ Lớp. "_". $ Spropperty. "_GetEvent"; if (is_callable (is_callable (is_callable ($ splugin)) (mixed \u003d call_user_func_array ($ splugin, $ hỗn hợp);) trả lại $ hỗn hợp;) công khai Chức năng __call ($ Smethod, $ hỗn hợp) ($ SPLUGIN \u003d $ này -\u003e _ Lớp. );) Nếu ($ trộn! \u003d "block_event") (call_user_func_array (mảng (& $ -\u003e _ Refoobject, $ Smethod), $ hỗn hợp); $ splugin \u003d $ này -\u003e _ lớp. "_". "_AfterEvent"; if (is_callable (is_callable ($ splugin)) (call_user_func_array ($ splugin, $ hỗn hợp);))))) // end clas plugin cluggable underd plugin () // end class pl uggable ///////////////// // // //////////////////////////////// //////////////////// // name \u003d ""; Chức năng công cộng Bark (& $ show) (echo "$ show
\\ n ";) chức năng công khai sayname () (echo"
\\ Nmy tên là: ". $ Này-\u003e tên."
\\ n ";)) // End Class Dog $ Dog \u003d New Dog (); ///////////////// // ///////// ////////////// $ pdog \u003d Pluggable mới ($ dog); chức năng dog_bark_bekforeevent (& $ hỗn hợp) ($ hỗn hợp \u003d "WOOF"; // ghi đè nói rằng "meo" với "WOOF" / / $ Subed \u003d "block_event"; // Nếu bạn muốn chặn sự kiện trả lại $ hỗn hợp;) Chức năng Dog_bark_afterEvent (& $ hỗn hợp) (Echo $ hỗn hợp; // Hiển thị ghi đè) Chức năng Dog_name_setevent (& $ hỗn hợp) ($ trộn \u003d "Coco"; // ghi đè "fido" với "Coco" trả lại $ hỗn hợp;) Chức năng Dog_name_getEvent (và $ hỗn hợp) ($ hỗn hợp \u003d "khác nhau"; // Ghi đè "Coco" với "khác" trả lại $ hỗn hợp;) / ///////////////////////////////////////////////// $ pdog-\u003e name \u003d "fido"; $ Pdog-\u003e sủa ("meo"); $ pdog-\u003e sayname (); echo "Tên mới của tôi là:". $ Pdog-\u003e tên;

Trong phần đầu tiên, bạn có thể bật với cuộc gọi yêu cầu_once () ở đầu tập lệnh PHP của bạn. Nó tải các lớp để làm một cái gì đó được kết nối.

Trong Phần 2, nơi chúng tôi tải xuống lớp. Ghi chú. Tôi không cần phải làm bất cứ điều gì đặc biệt cho một lớp, khác biệt đáng kể so với mẫu quan sát viên.

Trong Phần 3, nơi chúng tôi chuyển lớp của chúng tôi thành "Đã kết nối" (i.e., chúng tôi hỗ trợ các plugin cho phép chúng tôi ghi đè các phương thức và thuộc tính của lớp). Vì vậy, ví dụ, nếu bạn có một ứng dụng web, bạn có thể có một sổ đăng ký của các plugin và bạn có thể kích hoạt các plugin tại đây. Lưu ý về hàm dog_bark_beforeevent (). Nếu tôi đã cài đặt $ trộn \u003d "block_event" ở phía trước của toán tử trả lại, nó sẽ chặn con chó từ Laya và cũng chặn Dog_bark_afterEvent, vì sẽ không có sự kiện nào.

Trong Phần 4, mã hoạt động bình thường, nhưng lưu ý rằng những gì bạn có thể nghĩ sẽ không hoạt động. Ví dụ, con chó không khai báo nó với tên "Fido", nhưng "Coco". Con chó không nói "meo", nhưng "đáng". Và khi bạn muốn xem tên của con chó sau này, bạn sẽ thấy rằng đó là "khác nhau", chứ không phải "Coco". Tất cả những ghi đè này đã được trình bày trong Phần 3.

Vì vậy, làm thế nào nó hoạt động? Chà, hãy để họ loại trừ eval () (mà mọi người nói "ác") và loại trừ rằng đây không phải là mô hình quan sát viên. Do đó, cách thức hoạt động của nó là một lớp trống ẩn có tên là plugggable, không chứa các phương thức và thuộc tính được sử dụng bởi lớp chó. Do đó, vì điều này xảy ra, các phương pháp kỳ diệu sẽ được tham gia cho chúng tôi. Do đó, trong phần 3 và 4, chúng tôi giao tiếp với đối tượng thu được từ plugg có thể cắm lớp, và không phải với chính lớp chó. Thay vào đó, chúng tôi cho phép lớp plugin "chạm vào" đối tượng chó cho chúng tôi. (Nếu đây là một loại thiết kế mà tôi không biết - hãy cho tôi biết.)

Phương pháp móc và người nghe được sử dụng phổ biến nhất, nhưng có những thứ khác bạn có thể làm. Tùy thuộc vào kích thước của ứng dụng của bạn và những người muốn xem mã (nó sẽ là một tập lệnh foss hoặc một cái gì đó trong nhà) sẽ ảnh hưởng lớn đến cách bạn muốn giải quyết các plugin.

kdeloach có một ví dụ dễ chịu, nhưng chức năng thực hiện và hook của nó là một chút không an toàn. Tôi sẽ yêu cầu bạn cung cấp thêm thông tin về nhân vật của các ứng dụng PHP cho thư của bạn và cách bạn thấy plugin.

1 đến Kdeloach từ tôi.

Dưới đây là một cách tiếp cận mà tôi đã sử dụng là một nỗ lực để sao chép từ các tín hiệu / khe cắm QT từ cơ chế QT, một loại mẫu quan sát viên. Đối tượng có thể phát ra tín hiệu. Mỗi tín hiệu có một mã định danh trong hệ thống - nó bao gồm một ID ID + người gửi đối tượng. Mỗi tín hiệu có thể được gắn với người nhận, chỉ đơn giản là "gọi là", bạn sử dụng lớp lốp để truyền tín hiệu cho bất kỳ ai quan tâm đến việc nhận nó khi một cái gì đó xảy ra bạn gửi một tín hiệu. Dưới đây là một ví dụ và một ví dụ về việc thực hiện.

đăng nhập (); ?\u003e.

Tôi tin rằng cách dễ nhất là tuân theo lời khuyên của Jeff và xem xét mã hiện có. Cố gắng xem WordPress, Drupal, Joomla và các PHP-CMS nổi tiếng khác để xem những gì các giao diện API của họ trông và cảm nhận. Do đó, bạn thậm chí có thể nhận được những ý tưởng mà bạn có thể không nghĩ trước đây để làm cho mọi thứ dày hơn một chút.

Một phản hồi trực tiếp hơn là viết các tệp phổ biến mà chúng sẽ được đưa vào tệp bao gồm để cung cấp dễ sử dụng. Nó sẽ được chia thành các danh mục và không được cung cấp trong cùng một tệp "hook.php". Hãy cẩn thận vì những gì kết thúc là các tệp mà chúng bao gồm cuối cùng có nhiều phụ thuộc và chức năng hơn. Cố gắng giới hạn API phụ trợ. I.E ít tập tin hơn để họ bao gồm.

Có một dự án gọn gàng gọi là