为了账号安全,请及时绑定邮箱和手机立即绑定

检查特定标签在标签和存档页面上不起作用 - 解决方案?

检查特定标签在标签和存档页面上不起作用 - 解决方案?

PHP
饮歌长啸 2022-01-02 19:38:07
我想在所有页面的页眉区域显示某个元素(例如只是单词“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 来隐藏特定页面/页面类型上的元素。


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号