gpt4 book ai didi

php - Wordpress 搜索查询 - 元查询和自定义字段

转载 作者:可可西里 更新时间:2023-10-31 23:29:40 26 4
gpt4 key购买 nike

向大家提问。我在我的搜索页面模板上运行了当前查询,如果我的搜索查询似乎包含在帖子的标题中,它似乎工作正常,但是当我包含一个元查询以尝试在另一个位置查找时搜索字词,它不会收集任何结果,只会收集与之前相同的结果。

第二个问题,出于某种原因,它仍然只显示 6(WP Admin 中设置的帖子数)帖子,并且不听查询。

       <?php // WP_User_Query arguments
$search_term = get_search_query();
$args = array (
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'title',
'posts_per_page' => -1,
'nopaging' => true,
's' => '*'.$search_term.'*',
'meta_query' => array(
array(
'key' => 'course_id',
'value' => $search_term,
'compare' => 'LIKE'
)
)
);

$wp_course_query = new WP_Query($args);
// Get the results
$courses = $wp_course_query; ?>

<?php // Check for results
if (!empty($courses->get_posts())) { ?>
<ul class="course-list">


<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<li> <?php the_title(); ?> </li>
<?php endwhile; endif; wp_reset_query(); ?>

</ul>
<?php } else { ?>
<p>No courses match that query</p>
<?php } ?>

我尝试过的事情:

  • 对值进行硬编码,什么也没有。
  • 从“s”中删除 *

最佳答案

这在 WordPress 中似乎是不可能的,所以我不得不用另一种方式来做。

        $search_term = get_search_query();
$args = array (
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'title',
'posts_per_page' => -1,
'nopaging' => true,
's' => $search_term
);
$args2 = array (
'post_type' => 'courses',
'posts_per_page' => -1,
'nopaging' => true,
'meta_query' => array(
array(
'key' => 'course_id',
'value' => $search_term,
'compare' => 'LIKE'
)
)
);

$courses1 = get_posts($args);
$courses2 = get_posts($args2);
$merged = array_merge($courses1, $courses2);
$post_ids = array();
foreach ($merged as $item) {
$post_ids[] = $item->ID;
}

$unique = array_unique($post_ids);

$posts = get_posts(array(
'post_type' => 'courses',
'order' => 'ASC',
'orderby' => 'title',
'post__in' => $unique,
'posts_per_page' => -1
)); ?>

关于php - Wordpress 搜索查询 - 元查询和自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com