gpt4 book ai didi

php - 如何在 wordpress 中使用 LIKE 作为类别名称搜索帖子?

转载 作者:可可西里 更新时间:2023-11-01 00:55:59 24 4
gpt4 key购买 nike

  • 我需要自定义 word press 基本搜索过滤器。
  • 它可以很好地搜索帖子标题和帖子内容中的关键字。
  • 现在我需要显示结果,如果用户输入的名称与类别名称,那么它也应该从该类别中提取结果作为其他结果。
  • 我假设,它应该类似于使用税中 category_name 或 category_in 运算符的 LIKE 子句查询。

    $args = get_posts(array(            'fields' => 'ids',            'post_type' => 'post',            'post_status' => 'publish',            'posts_per_page' => -1,            's' =>  $_REQUEST['s'] ? $_REQUEST['s'] : '' ,            'tax_query' => array(                 array(                'taxonomy' => 'NAME OF TAXONOMY',                'field'    => 'slug',                'terms'    => 'SLUG OF the TERM', // LIKE (here should be any LIKE clause etc)                 ),            )           ));  

    如何实现这种情况,意味着当用户输入与类别名称匹配的任何关键字时,它应该从该类别中提取所有结果以及一般搜索结果。

示例: 在搜索栏中,用户输入“ABC”,并且有可用的类别名称为“ABC Park”,那么它应该拉此类别的结果以及具有包含“ABC”的帖子标题和内容的结果。

最佳答案

好吧...我想出了一个解决方案,我使用 LIKE 查询从表 terms 中获取了所有类别 ID,然后在其他查询中将此数组作为类别参数传递。这是代码。

$term_ids=array(); 
$cat_Args="SELECT * FROM $wpdb->terms WHERE name LIKE '%".$_REQUEST['s']."%' ";
$cats = $wpdb->get_results($cat_Args, OBJECT);
array_push($term_ids,$cats[0]->term_id);



$q1 = get_posts(array(
'fields' => 'ids',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
's' => $_REQUEST['s'] ? $_REQUEST['s'] : ''

));
$q2 = get_posts(array(
'fields' => 'ids',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'category' =>$term_ids
));
$unique = array_unique( array_merge( $q1, $q2 ) );

$posts = get_posts(array(
'post_type' => 'post',
'post__in' => $unique,
'posts_per_page' => -1
));
if ($posts ) :

foreach( $posts as $post ) :
//show results
endforeach;
endif;

但我仍然想要一种更简洁、更精确的方法。 :)

关于php - 如何在 wordpress 中使用 LIKE 作为类别名称搜索帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43316457/

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