日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Wordpress不同页面显示不同小工具

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Wordpress不同页面显示不同小工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

想做一個在右側顯示的文章目錄, 使用文章目錄的插件 Easy Table of Contents, 將其添加到右側的側邊欄中, 很輕松做到了這點.

但是, 一個新的問題出現了. 這個目錄的工具, 需要在文章頁面顯示, 而在其他頁面不顯示.

那么問題來了, 如何讓不同的頁面顯示不同的側邊欄工具呢?

在網上找了一些教程, 基本上都是推薦安裝插件的, 通過這種方式確實可以解決, 但是安裝插件會拖慢網站的加載速度, 能不能自己實現呢?

解決

轉念一想, WordPress提供了那么多的鉤子, 有沒有合適的鉤子能夠對頁面工具進行過濾呢?

在官網上 https://developer.wordpress.org/reference/hooks/ 通過關鍵字 widget搜索相關的鉤子, 結果發現人家確實提供了. 官方提供了很多鉤子, 需要的時候可以先看一下有沒有需要的.

就是: sidebars_widgets, 可以針對小工具進行過濾.

回調函數收到的參數長這樣:

{"wp_inactive_widgets": ["block-2","block-3","block-4","block-6","block-8","block-10","block-11","block-12","block-15","block-16","block-18","block-19"],"sidebar-1": ["block-20","custom_html-2","categories-2","ezw_tco-2"],"header-widget": [],"footer-widget-1": [],"footer-widget-2": [],"advanced-footer-widget-1": [],"advanced-footer-widget-2": [],"advanced-footer-widget-3": [],"advanced-footer-widget-4": [] }

其中sidebar-1就是側邊欄工具列表啦. 那么思路就很清晰了, 只要在不同的頁面對不同的工具進行過濾, 就可以達到效果啦.

下面給出我添加的過濾方法, 我的需求是在文章頁面僅顯示目錄工具, 其他頁面去掉目錄工具. 僅供參考(將代碼添加到 functions.php 文件中).

這里注意, 管理后臺不能過濾, 否則你在后臺的小工具頁面也看不到了.

/*** 側邊欄小部件過濾* @author hujing*/ add_filter( 'sidebars_widgets', function ($widgets){// 后臺界面, 都不過濾if(is_admin()) return $widgets;// 判斷是否是目錄部件$isEzwTco = fn($i) => strpos($i, 'ezw_tco-') === 0;// 對側邊欄內容進行過濾$filterSidebar = function ($isKeep) use (&$widgets){foreach ($widgets as $type=>&$tmpList){// 找到側邊欄, 進行過濾if(strpos($type, 'sidebar-') === 0){$tmpList = array_filter($tmpList, $isKeep);}}};// 文章頁面, 側邊欄值留下目錄if(is_single()){$filterSidebar(fn($i) => $isEzwTco($i));}else{ // 非文章頁面, 將側邊欄的目錄過濾$filterSidebar(fn($i) => !$isEzwTco($i));}return $widgets; });

原文鏈接: https://hujingnb.com/archives/679

總結

以上是生活随笔為你收集整理的Wordpress不同页面显示不同小工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。