我正在寻找使用自定义的帖子类型来创建一个简化的过程,以便关键个人向网页添加信息。让我们以一个职位公告为例,其中包含职位、截止日期等自定义字段。
然而,我也有许多类别的常规帖子。
我想把所有的帖子都列在一起。因此,对于显示最后3篇帖子的主页,包括自定义帖子类型的帖子(将有多篇)。
我还想让这些自定义帖子自动设置为特定类别,但这些类别应该是常规帖子类型的一部分。如果“Job Postings”和“Press Releases”是我的常规帖子菜单下的两个类别,我还希望“Job\\u Posting”的CPT自动设置为“Job Postings”。
这种情况下,我们需要发布属于职位发布类别的信息,但不一定是在该CPT中设置了必填字段的实际发布。
我是不是完全走错了方向?
更新:
我已将我的WP\\U查询更改为以下内容,但它仍然不会显示CPT:
<ul class="home-content-recent">
<?php
$args = array(
\'post_type\' => \'any\',
);
$recent = new WP_Query($args);
$recent->query(\'showposts=3\');
if($recent->have_posts()) : while($recent->have_posts()): $recent->the_post();?>
<li>
<a class="recent-title" href="<?php the_permalink()?>"><?php the_title()?></a>
<div class="post-meta-data">
<p class="recent-time"><?php the_time(\'l, F j, Y\')?></p>
<p class="recent-category"><?php the_category(\', \'); ?></p>
<p class="recent-commentcount"><?php comments_number( \'No Comments\', \'1 Comment\', \'% Comments\' ); ?></p>
</div>
<div class="recent-excerpt"><?php the_excerpt()?></div>
</li>
<?php endwhile ?>
<?php else : ?>
<?php endif ?>
</ul>
SO网友:Eric Holmes
对于你问题的第一部分pre_get_posts
钩子是你所需要的一切。如果您使用默认的“最新帖子”设置作为首页(设置>阅读),那么此代码应该可以工作。
add_action( \'pre_get_posts\', \'se132019_home_page_all_post_types\' );
function se132019_home_page_all_post_types( $query ) {
if ( ! is_admin() $query->is_main_query() && $query->is_posts_page() ) {
$query->set( \'post_type\', \'any\' );
}
}
如果使用自定义
WP_Query, 只需添加
\'post_type\' => \'any\'
作为论据。
第二件事是你的个人喜好——你可以把所有帖子放在帖子中,并根据它们所附加的术语(类别)进行不同的显示。否则,您需要做以下两件事:
将自定义职位类型(职位列表)添加到category
分类学这可以在以下情况下完成registering the post type 使用taxonomies
参数,或使用register_taxonomy_for_object_type.钩住save_post
方法,检查帖子是否附加到任何类别。如果没有,请根据职位类型手动将其分配到适当的类别编辑:
您的前几行应该如下所示。创建WP\\U查询对象时,它会自动调用query()
作用您正在第二次调用它,并将新参数传递给它。
<?php
$args = array(
\'post_type\' => \'any\',
\'posts_per_page\' => 3
);
$recent = new WP_Query($args);