Trang chủ » WordPress » Cách hiển thị Thanh bên WordPress trên các trang web không phải WordPress

    Cách hiển thị Thanh bên WordPress trên các trang web không phải WordPress

    Trong khi thực hiện dự án mới nhất của mình, DevGrow Thảo luận, tôi đã thấy cần phải nhúng toàn bộ thanh bên WordPress của tôi trên một trang web không phải WordPress - cụ thể là một diễn đàn bbPress. Vì tôi sử dụng các tiện ích khác nhau để hiển thị các bài đăng phổ biến và nội dung động khác, chỉ cần sao chép và dán HTML sẽ không đủ. Cuối cùng, thực sự chỉ có hai cách để làm điều này:

    1. Bao gồm của bạn wp-load.php tệp trong ứng dụng của bạn và thực tế tải toàn bộ WordPress để có quyền truy cập vào các chức năng của plugin
    2. Sử dụng bộ nhớ đệm đơn giản để lưu trữ thanh bên ở định dạng HTML và đưa nó vào bất kỳ ứng dụng nào khác, sau đó xây dựng lại khi cần thiết khi nội dung mới được xuất bản

    Nếu nó không đủ rõ ràng, tùy chọn đầu tiên rất tốn kém về mặt truy vấn cơ sở dữ liệu và có thể làm chậm đáng kể trang web của bạn. Tùy chọn thứ hai đòi hỏi một chút nỗ lực trong việc thực hiện nhưng hiệu suất khôn ngoan không có cạnh tranh.

    Lưu trữ thanh bên WordPress của bạn

    Trước khi chúng ta có thể viết chức năng của mình, chúng ta cần hiểu chính xác những gì chúng ta đang cố gắng làm. Mục tiêu của chúng tôi là lưu trữ thanh bên của chúng tôi vào một tệp văn bảncập nhật bộ đệm đó bất cứ khi nào chúng tôi xuất bản một bài đăng, thay đổi chủ đề của chúng tôi hoặc thay đổi các tiện ích thanh bên. Vì chúng tôi dự định sử dụng bộ đệm của mình để hiển thị thanh bên trên một ứng dụng khác, chúng tôi cần có thể dễ dàng xóa bộ nhớ cache mà không có bất kỳ tác động xấu nào (chúng tôi không muốn thanh bên bị hỏng bất cứ lúc nào).

    Để thực hiện điều này một cách hiệu quả, chúng tôi cũng sẽ tạo một bản ghi của các tập tin lưu trữ của chúng tôisử dụng để xác định xem có nên xóa bộ nhớ cache không. Nếu vậy, tệp bộ đệm thực tế sẽ bị ghi đè vào lần tới khi ai đó truy cập trang web WordPress, đảm bảo thanh bên phù hợp luôn được hiển thị trên cả hai ứng dụng.

    Tạo các hàm

    Để bắt đầu, hãy mở chủ đề của bạn Hàm.php tập tin và thêm các chức năng sau vào nó:

     bộ đệm chức năng ($ task, $ cacheFile, $ cacheTime = 21600) global $ cache; // Định cấu hình tệp và thư mục: $ cacheDir = TEMPLATEPATH. "/ Cache"; $ cacheFileName = $ cacheDir. "/ cache- $ cacheFile.txt"; $ cacheLogFile = $ cacheDir. "/ cache-log.txt"; // Tạo thư mục bộ đệm nếu nó không tồn tại if (! Is_dir ($ cacheDir)) mkdir ($ cacheDir, 0755); // Tạo nhật ký của các tệp bộ đệm với trạng thái hiện tại của chúng nếu (file_exists ($ cacheLogFile)) $ cacheLog = unserialize (file_get_contents ($ cacheLogFile)); khác $ cacheLog = mảng (); if ($ task == 'start') // Nếu bộ đệm tồn tại, chưa đến 6 giờ và không có trong hàng đợi xóa, hãy giữ lại - nếu không thì xây dựng lại bộ đệm nếu (file_exists ($ cacheFileName) && (time () - filemtime ($ cacheFileName)) < $cacheTime && $cacheLog[$cacheFile] == 1) $cache = false;  else  $cache = true; ob_start();  elseif($task == 'end' && $cache) // If caching, save file contents and update log file_put_contents($cacheFileName,ob_get_contents()); ob_end_flush(); $cacheLog[$cacheFile] = 1; file_put_contents($cacheLogFile,serialize($cacheLog)); elseif($task == 'purge') // Set cache to delete and update log $cacheLog[$cacheFile] = 0; file_put_contents($cacheLogFile,serialize($cacheLog));   function cache_purge() $cacheDir = TEMPLATEPATH."/cache"; $cacheLogFile = $cacheDir."/cache-log.txt"; if(file_exists($cacheLogFile)) $cacheLog = unserialize(file_get_contents($cacheLogFile)); else $cacheLog = array(); foreach($cacheLog as $key=>$ value) $ cacheLog [$ key] = 0; file_put_contents ($ cacheLogFile, tuần tự hóa ($ cacheLog));  

    Những chức năng đầu tiên, bộ nhớ cache, là chìa khóa để bộ nhớ cache của chúng tôi hoạt động. Tùy thuộc vào vị trí trong tệp của bạn mà bạn gọi nó, chức năng sẽ thiết lập các tệp và thư mục chính xác, xác minh bộ đệm cần được xây dựng và nếu vậy, sẽ lưu đầu ra và cập nhật nhật ký bộ đệm. Hàm sử dụng bộ đệm đầu ra của PHP để lưu bất kỳ HTML nào được tạo vào tệp văn bản.

    Hàm thứ hai được sử dụng để lọc tất cả các tệp bộ đệm và rất hữu ích để thêm vào các móc nối WordPress hiện có. Với nó, chúng tôi có thể làm cho nó để bộ nhớ cache của chúng tôi bị xóa mỗi khi chủ đề của chúng tôi được cập nhật, một bài đăng được lưu hoặc các tiện ích thanh bên của chúng tôi được cập nhật bằng cách thêm vào sau vào cuối Hàm.php:

     add_action ('switch_theme', 'cache_purge', 10); add_action ('Publish_post', 'cache_purge', 10); add_filter ('widget_update_callback', 'cache_purge', 10); 

    Để biết danh sách đầy đủ các hook, hãy xem Tham khảo API của WordPress Plugin.

    Định cấu hình Thanh bên của bạn

    Bây giờ bạn đã có các chức năng sẵn sàng, bạn có thể bắt đầu lưu trữ thanh bên của mình. Mở ra sidebar.php và thêm dòng này vào đầu tập tin:

      

    Hàm này sẽ bắt đầu lưu vào thanh bên mà nó cần, nếu không nó sẽ không làm gì cả. Do cách thức hoạt động của bộ đệm đầu ra PHP, chúng ta cũng cần tắt bộ đệm ở cuối tệp. Thêm dòng này vào dưới cùng của cùng một tệp:

      

    Sau khi bạn đã thêm hai dòng đó, hãy làm mới blog của bạn. Bạn sẽ không thấy bất cứ điều gì trong trình duyệt của mình nhưng hãy kiểm tra / bộ đệm thư mục trong thư mục chủ đề của bạn và bạn sẽ thấy hai tệp bắt đầu bằng bộ nhớ cache-.

    Sử dụng bộ nhớ cache của bạn

    Bây giờ bạn đã tạo tệp bộ nhớ cache của mình, bạn có thể sử dụng nó trong bất kỳ ứng dụng nào có quyền truy cập vào nó. Bạn có thể dễ dàng làm điều này bằng cách sử dụng bao gồm nhưng tôi cũng muốn đảm bảo rằng tệp tồn tại, để an toàn:

      

    Chỉ cần chắc chắn kiểm tra lại đường dẫn tệp của bạn là chính xác. Nếu bạn muốn đặt bộ nhớ cache của mình để xóa khỏi một ứng dụng bên ngoài, bạn sẽ phải bao gồm cache_purge chức năng trong tập lệnh của bạn ở đâu đó và chỉ cần gọi nó bất cứ khi nào cần thiết. Sau đó, nó chỉ đơn giản là vấn đề gọi hàm:

      

    Phần kết luận

    Kỹ thuật này thực sự hữu ích cho bất kỳ ứng dụng PHP nào, đặc biệt là khi bạn muốn hiển thị nội dung động mà không phải hy sinh hiệu năng. Sử dụng nó để tăng tốc cài đặt WordPress của bạn hoặc có thể sử dụng các bit hữu ích (như thanh bên) trên bất kỳ trang web hoặc ứng dụng nào khác.

    Ghi chú của biên tập viên: Bài này được viết bởi Monjurul Dolon cho Hongkiat.com. Monjurul là một nhà thiết kế giao diện và nhà phát triển web có trụ sở tại NYC, tự do đi qua cuộc sống. Anh viết blog tại DevGrow.com, nơi anh chia sẻ các mẹo và tài nguyên về thiết kế và phát triển web.