我想在所有頁面的頁眉區域顯示某個元素(例如只是單詞“HELLO”),并使用 PHP 運算符從該元素的顯示中排除某些頁面。在我的情況下,如果帖子具有 ID 為 4444 的標簽或者它屬于 ID 為 123 或 456 的類別,則不應顯示此元素(“Hello”)。標題中的示例代碼也可以正常工作:if ( !in_category ( array (123, 456)) && !has_tag (4444)):echo '<div class=\'example\'>Hello</div>';endif;因此,示例文本“Hello”應該顯示在每個帖子和每個頁面上,在 ID 為 123 和/或 456 和/或不是關鍵字 ID 4444 的類別中沒有關鍵字 ID 4444。這在所有頁面和每篇文章中都非常有效。但是(這就是問題所在),如果我查看存檔或標記頁面(兩者都由 archive.php 表示)或者如果我使用搜索 (search.php),它就無法正常工作。如果存檔、標簽或搜索頁面列出了多個文章預覽,并且 TOP (!) 文章已分配了 ID 為 4444 的標簽,則“您好”一詞不會顯示在存檔、標簽或搜索的標題中頁面 - 但它應該是!如果此類文章預覽(其文章例如具有標簽 ID 4444)位于第二、第三或之后的位置,則標題中會顯示“您好”。我不想在存檔、標簽或搜索頁面上搜索 ID 4444 或類別 123、456,因為它們只是列出文章預覽的頁面。但是,在這些頁面上,“您好”應根據需要在標題中顯示。
1 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
(評論后編輯)
我認為這很簡單,你想要的只是這個:
//if on any archive or archive-like page OR on "singular" pages except as excluded
if ( ! is_singular() || ( is_singular() && ! in_category( array (123, 456)) && ! has_tag (4444) ) ):
echo '<div class=\'example\'>Hello</div>';
endif;
坦率地說,我根本不擔心附件頁面,但是,要特別涉及它們,您可以在is_attachment()ORis_page()和is_single()
有關 Wordpress 條件標簽的更多信息,請訪問:https : //codex.wordpress.org/Conditional_Tags
第二種選擇,但我不會真正推薦它,是使用 CSS 來隱藏特定頁面/頁面類型上的元素。
添加回答
舉報
0/150
提交
取消