PHP只显示父帖子的div

时间:2017-04-06 02:28:21

标签: php wordpress

我有两种类型的投资组合帖子:父帖和子帖。当显示作为父母的单个帖子时,我想要显示:

@ECHO OFF
UNSET JAVA_TOOL_OPTIONS 
::----------------------------------------------------------------------
:: IntelliJ IDEA startup script.
::----------------------------------------------------------------------

在儿童帖子上,我想要显示上面的略有变化。

现在,我使用它来显示所有单个帖子页面上的菜单,无论它们是父帖还是子帖:

                <div class="col-1 art-singles art-controls">
                  <?php next_post_link('%link', '←'); ?>  &nbsp;
                    <a href="<?php get_home_url(); ?>/work" alt="all work">All</a>&nbsp;  
                  <?php previous_post_link('%link', '→'); ?>
                  <a href="#" alt="enlarge image" class="enlarge-it"><p style="text-transform: none;">Enlarge</p></a>
                </div>

我很难理解如何区分单亲帖子和单子帖子。

我已经尝试过以这种方式重新制作它以显示父帖:

<?php if ( is_single() ) : ?>

<div class="col-1 art-singles art-controls">
   <?php next_post_link('%link', '←'); ?>  &nbsp;
   <a href="<?php get_home_url(); ?>/work" alt="all work">All</a>&nbsp;  
   <?php previous_post_link('%link', '→'); ?>
   <a href="#" alt="enlarge image" class="enlarge-it"><p style="text-transform: none;">Enlarge</p></a>
</div>

<?php endif; ?>

这只是导致内容在父或子单个帖子上根本不显示。

简而言之:我是否可以添加到if语句中以仅显示父单个帖子上的div?我可以添加一些东西,只显示儿童单个帖子上的div?

1 个答案:

答案 0 :(得分:0)

您可以在functions.php中使用此is_tree()函数:

/**
 * @param  [pid] The ID of the post to check
 * @return boolean
 */
function is_tree($pid) {
    global $post;
    $cpid = get_the_ID();
    $parents = get_post_ancestors( $post->ID );
    $ancestorid = ($parents) ? $parents[count($parents)-1]: $post->ID;
    if( ($post->post_parent == $pid || $cpid == $pid || $ancestorid == $pid ))
        return true;
    return false;
};

然后在你的模板中调用它:

// Use
if ( is_tree($post_id) ) {
    // do stuff
}