2017-04-06 51 views
1

我有两种类型的投资组合职位:父职位和子职位。当显示一个帖子说是父母,我想这显示:PHP只为父职位显示div

   <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; ?> 

我难倒就如何使一个区别单身职位与单身职位之间。

我已经尝试过返工这种方式只显示在父的帖子:

<?php if($post->post_parent != 0) { 

    echo "<?php next_post_link('%link', '←'); ?>"; 
    echo "&nbsp;"; 
    echo "<a href='"; 
    get_home_url(); 
    echo "/work' alt='all work'>All</a>"; 
    echo "&nbsp;"; 
    echo "<?php previous_post_link('%link', '→'); ?>"; 
    } 
    ?> 

这只是导致内容无法显示在所有的父母或子女单个职位。

总之:有什么我可以添加到if语句来显示div只在父单个帖子?还有一些我可以添加到仅显示子单个帖子的div上?

+0

这可能不是解决你的问题或相关到你的问题。但我至少看到你的代码打破了主线。我认为你在代码中试图做的是'echo'All'; – hcheung

回答

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 
}