子页面标题的多个条件

时间:2014-04-17 作者:codeview

我一直在努力Conditional Tags 而且我也不知道这个问题。这里是PHP新手。

在子页面上,我需要显示父页面标题以及页面标题。我已将其用于:

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2><?php the_title(); ?></h2>
但我现在的问题是,在父页面上,页面标题显示两次,即父页面标题和页面标题。相反,在父页面上,我需要h2 要显示“选择子页”,如果有子页。。。如果没有子页面,则不显示任何内容。我认为这是可能的:

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2>
  <?php 
    if is_parent_page_without_children() {echo \'\';} ;
    elseif is_parent_page_with_children() {echo \'select a sub-page\';} ;
    else the_title();
  ?>
</h2>

3 个回复
最合适的回答,由SO网友:codeview 整理而成

我在Conditional Tags codex, 第2.12节:

“注意:没有检查页面是否为子页面的功能。我们可以绕过此问题:

if ( is_page() && $post->post_parent > 0 ) { 
   echo "This is a child page";
}
因此,我对其进行了如下修改,将只使用wp\\u list\\u pages函数的“title\\u li”属性来显示“选择一个子页面”(不完全是我想要的,但足够简单,我可以使用它来设计我需要的网站)。

<h1><?php echo get_the_title($post->post_parent);?></h1>
<h2><?php if (is_page() && $post->post_parent > 0 ) { the_title();}?></h2>

http://codex.wordpress.org/Conditional_Tags#A_PAGE_Page

SO网友:TheDeadMedic

根据评论交流,以下是我认为你想要的:

<h1><?php echo get_the_title( $post->post_parent ? $post->post_parent : $post->ID ) ?></h1>

<?php if ( $list = wp_list_pages( "echo=0&child_of=$post->ID" ) ) : ?>

    <h2>Select a sub-page</h2>
    <ul>
        <?php echo $list ?>
    </ul>

<?php elseif ( $post->parent ) : ?>

    <h2><?php the_title() ?></h2>

<?php endif ?>

SO网友:Krzysiek Dróżdż

<?php if ( $post->post_parent ): ?>
<h1><?php echo get_the_title($post->post_parent); ?></h1>
<h2><?php the_title(); ?></h2>
<?php else: ?>
<h1><?php the_title(); ?></h1>
<?php if ( get_pages( array(\'child_of\' => $post->ID) ) ): ?>
<h2>select a sub-page</h2>
<?php endif; ?>
<?php endif; ?>
像这样的东西应该可以完成这项工作。未经测试,可能存在一些错误/拼写错误。

结束

相关推荐

Get post title by Alphabet

我尝试调用此函数以按字母表获取帖子列表。但由于某种原因,我不断地出错。对非对象调用成员函数get\\u col()。我做错了什么?{function get_post_by_alphabet($the_char){ $first_char = $the_char; $postids=$wpdb->get_col($wpdb->prepare(\" SELECT ID FROM $wpdb->posts WHERE