循环内自定义发布类型单一模板的If/Else子列表?

时间:2012-01-04 作者:Adam

我正在尝试向我的“服务”自定义帖子类型单一模板添加一个功能,如果帖子类型有一个或多个子帖子类型,则显示一个内容,如果没有子帖子类型,则显示另一个内容。到目前为止,我已经想到了这一点,但它似乎没有按预期工作:

<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); ?>
<?php if ($children): ?>

<div class="two-column align-left spacer">
<ul>
<?php echo $children; ?>
</ul>
</div>

<article class="four-column spacer align-left <?php post_class(); ?>"id="post-<?php the_ID(); ?>" role="article">

<?php the_content(); ?>

</article>

<?php else : ?>

<article class="six-column spacer align-left" id="post-<?php the_ID(); ?>" role="article">

<?php the_content(); ?>

</article> 

<?php endif; ?>
有谁能帮我指出正确的方向吗?我已经将服务post类型设置为hierarchy=>true和capability\\u type=>post(并尝试了page),但仍然没有成功。

显然,上面的代码需要位于标准页面循环中。这是否意味着我需要改用query\\u帖子?

非常感谢,

亚当

2 个回复
SO网友:Stephen Radford

如果您使用自定义帖子类型,则需要创建自定义循环。

<?php $loop = new WP_Query( array( \'post_type\' => \'services\', \'posts_per_page\' => 5) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    POST HERE
<?php endwhile; ?>

SO网友:Marius Akerbæk

除了Hierarchy设置为true之外,还必须将“页面属性”(值存在于“支持”(supports)参数中)设置为true。这是在声明自定义post类型时使用的register\\u post\\u type函数中的一个参数。

检查supports参数是否在函数中包含“page attributes”。启动自定义帖子类型的php或插件:)

参考号:https://codex.wordpress.org/Function_Reference/register_post_type#Parameters

结束

相关推荐

自定义POST类型和Have_Posts()返回空结果

我对have\\u posts()感到非常困惑。它返回一个空结果,即使我有一篇文章与查询匹配。下面的代码用于一个小部件,该小部件应该只显示一篇文章(如果存在的话)。我使用wordpress 3.3。。。$singleargs = array(\'p\' => 2040, \'post_type\' => \'event\', \'post_status\' => array(\'any\'), \'posts_per_page\' => 1); $singlequery =