Wordpress 可湿性粉剂查询通过自定义职位类型循环工作在主页上,但不是在搜索页面上

Wordpress 可湿性粉剂查询通过自定义职位类型循环工作在主页上,但不是在搜索页面上,wordpress,while-loop,custom-fields,advanced-custom-fields,Wordpress,While Loop,Custom Fields,Advanced Custom Fields,我有两种自定义的帖子类型,分别是艺术家和绘画。这两种帖子类型都有一个名为“艺术家名称”的自定义字段,该字段是使用高级自定义字段插件创建的。我需要能够将这两种帖子类型中的自定义字段相互匹配,以便显示更多信息 仅粘贴查询中的参数和循环。如有必要,将发布更多代码 <?php $artist_name = get_field('artist'); $args = array( 'post_type' => 'artists', 'meta_value' => $artist_name

我有两种自定义的帖子类型,分别是艺术家绘画。这两种帖子类型都有一个名为“艺术家名称”的自定义字段,该字段是使用高级自定义字段插件创建的。我需要能够将这两种帖子类型中的自定义字段相互匹配,以便显示更多信息

仅粘贴查询中的参数和循环。如有必要,将发布更多代码

<?php
$artist_name = get_field('artist');

$args = array(
'post_type' => 'artists',
'meta_value' => $artist_name
);
$query_artist = new WP_Query( $args );

if ( $query_artist->have_posts() ) {
    while ( $query_artist->have_posts() ) {
        $query_artist->the_post(); ?>
        <p class="artist-name"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
        <?php }
} else {
    echo 'Artist not found';
}
wp_reset_postdata(); ?>

此代码在主页的模板文件中正常工作,但在搜索结果页面中始终打印“未找到艺术家”。我直接从主页模板复制了这段代码,所以拼写错误不是问题。很长一段时间以来,我一直在为这个伤脑筋。读过这篇文章的人会知道发生了什么吗


谢谢。

我认为wordpress不会自动在搜索中包含自定义类型

您可以使用类似的插件或在functions.php中编写自己的函数

function rc_add_cpts_to_search($query) {     
    // Check to verify it's search page
    if( is_search() ) {
        // Get post types
        $post_types = get_post_types(array('public' => true, 'exclude_from_search' => false), 'objects');
        $searchable_types = array();
        // Add available post types
        if( $post_types ) {
            foreach( $post_types as $type) {
                $searchable_types[] = $type->name;
            }
        }
        $query->set( 'post_type', $searchable_types );
    }
    return $query;
}
add_action( 'pre_get_posts', 'rc_add_cpts_to_search' );

示例来自

好的,所以我终于得到了我想要的工作,但我不确定为什么下面的代码有效,而我的原始代码无效,因为它们都是执行新查询的类似方法

如果其他人有同样的问题,下面是代码:

<?php
// Permalink for artist
$artist_name = get_field('artist');
global $post;
$posts = get_posts( array( 'post_type' => 'artists', 'meta_value' => $artist_name ) );
if( $posts ):
   foreach( $posts as $post ) :   
    setup_postdata($post); ?>
    <p class="artist-name"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
   <?php endforeach; 
wp_reset_postdata(); 
endif; ?>


Hi。我使用一个名为WP Custom Search的插件来运行这个搜索页面。我一直在根据搜索结果输出正确的内容,但一旦我将您的代码添加到my functions.php,任何和所有搜索查询结果都将显示在“results not found”(结果未找到)消息中
我希望搜索页面中的结果循环浏览自定义帖子类型,并从另一个自定义帖子类型的自定义字段中提取值。如何同时获取帖子图像?