Php 在Wordpress循环中包含自定义帖子类型
对不起,我想我读了每一篇关于这个的帖子,但没法让它发挥作用 我有一个叫做“外部”的Wordpress自定义帖子类型,我想在我的主页上同时显示来自“外部”的帖子以及我的正常标准帖子 这是我的循环:Php 在Wordpress循环中包含自定义帖子类型,php,wordpress,loops,custom-post-type,Php,Wordpress,Loops,Custom Post Type,对不起,我想我读了每一篇关于这个的帖子,但没法让它发挥作用 我有一个叫做“外部”的Wordpress自定义帖子类型,我想在我的主页上同时显示来自“外部”的帖子以及我的正常标准帖子 这是我的循环: <?php get_header(); if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('
<?php
get_header();
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
else { $paged = 1; }?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(''); ?>>
<?php the_content(); ?>
</div>
<?php endwhile; wp_reset_postdata(); endif; ?>
现在我可以在搜索结果中看到帖子,但我需要Block8.php中的查询来获取它们
谢谢 将其添加到functions.php文件中
/**
* @param WP_Query $query
* @return WP_Query
*/
function add_my_custom_post_type( $query ) {
if ($query->is_main_query())
$query->set( 'post_type', array( 'post', 'external' ) );
return $query;
}
add_action( 'pre_get_posts', 'add_my_custom_post_type' );
Ref&duplicate:要在常规循环(即posts页面)中包含自定义post类型,只需在
if(have_posts())之前向index.php添加以下代码:
$args = array(
'post_type' => array('post', 'custom_post_type'),
'post_status' => 'publish',
);
$new_post_loop = new WP_Query( $args );
然后修改以下两行:
if(have_posts()):
将其更改为if($new_post\u loop->have_posts()):
$args = array(
'post_type' => array('post', 'custom_post_type'),
'post_status' => 'publish',
);
$new_post_loop = new WP_Query( $args );
及
while(have_posts()):the_post()
towhile($new\u post\u loop->have\u posts()):$new\u post\u loop->the\u post()代码>
此解决方案避免了在后端的“所有帖子”屏幕中列出自定义帖子类型的问题,这是其答案;) 函数添加\我的\自定义\发布\类型($query){
如果(!is_admin()&&$query->is_main_query()){
如果($query->is\u main\u query()){
$query->set('post_type',数组('post','some_custom_post_type_name'));
}
返回$query;
}
}
添加操作('pre_get_posts'、'add_my_custom_post_type');
这是编写代码的正确方法,以免破坏仪表板查询。Hi!当我将代码添加到functions.php时,它破坏了我的主题?可以加载站点,到许多重定向吗?听起来可能不相关。您是否已将wp_debug设置为true?如果是这样的话,发布你的错误消息。嗨,Mevius,我用一些代码更新了这个问题,这就是你想要的吗?谢谢,请点击旁边的复选标记接受下面的答案,因为该答案实际上解决了您的问题
$args = array(
'post_type' => array('post', 'custom_post_type'),
'post_status' => 'publish',
);
$new_post_loop = new WP_Query( $args );