如果页面或子页面未按预期工作

时间:2018-10-15 作者:Sam

我想在“about”页面及其子页面上显示一个特定的动态侧栏。From the codex, 我尝试了以下方法:

<?php 
  // Begin main loop
  if ( have_posts() ): while ( have_posts() ):
  the_post();

  // If about page and about child pages
  if ( is_page(\'about\') && $post->post_parent > 0 ) {
    dynamic_sidebar(\'about\');
  }

  else {
    dynamic_sidebar(\'general\');
  }

  // End loop
  endwhile;
  endif;
?>
这行不通。我错过了什么?

我也尝试了以下方法。这对祖父母和父母有效,但对孩子无效。

<?php

  if (is_page (17) || (17 == $post->post_parent ) ) {
    dynamic_sidebar(\'about\');
  }

  else {
    dynamic_sidebar(\'general\');
  }

?>
下面是一个子页面的post对象转储,使用<?php echo \'<pre>\' . print_r( $post, true ); ?>:

WP_Post Object
(
    [ID] => 382
    [post_author] => 1
    [post_date] => 2018-08-15 17:02:56
    [post_date_gmt] => 2018-08-15 16:02:56
    [post_content] => 
    [post_title] => Art
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => closed
    [ping_status] => closed
    [post_password] => 
    [post_name] => art
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2018-10-22 12:39:27
    [post_modified_gmt] => 2018-10-22 11:39:27
    [post_content_filtered] => 
    [post_parent] => 378
    [guid] => http://domain.local/?page_id=382
    [menu_order] => 0
    [post_type] => page
    [post_mime_type] => 
    [comment_count] => 0
    [filter] => raw
)

1 个回复
SO网友:phatskat

您可能需要获取关于页面的ID,并在比较中使用该ID:

if ( is_page( \'about\' ) || $about_page_id == $post->post_parent ) {

结束

相关推荐

Pages>max_num_ages不会抛出404

我在WP管理中创建了一个名为Blog的新页面,并为其创建了自定义页面模板。在模板中,我有一个简单的分页自定义查询。$query = new WP_Query(array( \'post_type\' => \'post\', \'posts_per_page\' => 1, \'paged\' => $paged )); 看起来一切正常,除了我手动键入比url的“/页/”部分后可用的页码更大的页码。页面不会抛出404错误,但会在没有自定义循环的情况下将页面呈现为正常。