如果您位于“服务”页面上,或者属于页面ID 1531、1567或1533的子页面,则下面的代码用于显示随机横幅图像。
但是,当我点击网站上未找到的页面时,在横幅图片上方出现了该问题的标题中提到的错误。
下面是正在使用的代码
<?php
global $post;
$n = rand(1,7);
// error on the following line
if( is_page('Services') || $post->post_parent == 1531 || $post->post_parent == 1567 || $post->post_parent == 1533 ) : ?>
<div class="banner-sub<?php echo ' banner' . $n; ?> rand"></div><!-- .banner -->
<?php else : ?>
<div class="banner-sub overlay"></div><!-- .banner -->
<?php endif; ?>
答案 0 :(得分:0)
您似乎无权访问$post
变量,可以在this answer中找到何时可以访问它。
我还建议针对post_parent
条件使用数组:
$excluded = [1531, 1533, 1567];
if (is_page('Services') || in_array($post->post_parent, $excluded)) {
//
}
答案 1 :(得分:0)
在404页上,没有加载任何帖子,因此$post
可能是null
,它是非对象,并且没有诸如post_parent
之类的属性。
您需要对此进行测试:
if ( is_page('Services') || ( $post && ( $post->post_parent == 1531 || $post->post_parent == 1567 || $post->post_parent == 1533 ) ) ) : ?>