【发布时间】:2019-01-03 13:39:54
【问题描述】:
我的 Wordpress 网站上的大多数页面都有相同的页眉和页脚。标题包括表单和菜单以及联系按钮。页脚还包含一个表单。
我有许多完全自定义布局的页面。例如。 page-personal-training-landing.php & page-beach-body-ready.php。对于这些页面,我省略了页眉和页脚中的元素。
目前我正在使用“如果不是”语句在所有页面上显示这些元素,除了那些自定义页面...
<?php if ((!is_page( 'contact' ))&&(!is_page('beach-body-landing'))&&(!is_page('4-week-body-transformation'))&&(!is_page('beach-body-ready'))&&(!is_page('personal-training-landing'))){?>
<div class="contact-button"></div>
<?php } ?>
...但是正如您所见,这段代码变得很长,我会在创建新页面时不断向其中添加新页面。
我认为模板是解决方案.. if(!is_page_template( 'noheadernofooter-page.php' )... 但不幸的是,Wordpress 在默认为自定义页面布局之前默认为该模板布局...
Wordpress 页面模板选择的层次...
- 自定义模板文件 – 分配给页面的页面模板。看 get_page_templates()。
- page-{slug}.php - 如果页面 slug 是最近的新闻,WordPress 将 看看使用 page-recent-news.php。
- page-{id}.php – 如果页面 ID 为 6,WordPress 将使用 page-6.php。
- page.php
- singular.php
- index.php
我现在在想,也许我应该使用高级自定义字段来添加一些复选框。例如。隐藏页眉按钮(Y/N),然后查询当前页的值。
这听起来是不是最合乎逻辑的解决方案?
有谁知道在没有其他插件的情况下通常如何做到这一点?
谢谢
【问题讨论】:
-
这并不能解决问题,但您知道您可以将一组 ID 传递给 is_page(),对吧? (例如
if ( ! is_page( array(62, 64, 78, 123) ) ) { // do some stuff })。 -
如果这些按钮只显示在固定数量的页面上,那么我会反过来:
if ( is_page(array(23, 25, 60)) ) { // display buttons }。