php - 如何在没有 WP_Query 'title' 的情况下搜索帖子的 ,'content' &'meta_query' 's' ?

标签 php wordpress search

我在 wordpress 中编写了一个搜索查询,用于搜索“post_title”、“post_content”和“meta_query”。我可以不使用 WP_Query Search 的“s”参数,而是使用 WP_Query 的“post”和“meta_query”相关参数与“OR”相结合,以便搜索查询通过仅传递 WP_Query 的相关参数来匹配“post_title”和“post_content”吗?或者有没有办法像下面这样用 $wpdb 手动编写查询:

global $wpdb;
$query= "SELECT wp_dxwe_posts.* FROM `wp_posts` WHERE 
(wp_posts.post_status IN ('$status_array') AND
wp_posts.post_type='messages') AND 
(wp_posts.post_title LIKE '%$keyword%' OR wp_posts.post_content 
LIKE '%$keyword%') AND ( wp_postmeta.meta_key == 'my_meta_key' AND 
wp_postmeta.meta_value LIKE '%$keyword%') ";

$my_query = $wpdb->get_results($query);

谁能告诉我怎么做?提前致谢。

我得到以下 MySql 结果查询:

  SELECT * FROM `wp_dxwe_posts` wp 
INNER JOIN `wp_dxwe_postmeta` wm ON (wm.`post_id` = wp.`ID`) 
WHERE wp.`post_status` IN ('publish,pending,draft') 
AND wp.`post_type`='messages'
AND (wp.`post_title` LIKE '%prasad%' OR 
wp.`post_content` LIKE '%prasad%') 
    AND wm.`meta_key` = 'inistitute_name' 
    AND wm.`meta_value` LIKE '%some_institute_name%'

最佳答案

按以下方式使用自定义查询:

SELECT * FROM `wp_posts` wp 
    INNER JOIN `wp_postmeta` wm ON (wm.`post_id` = wp.`ID`) 
        WHERE wp.`post_status` IN ('$status_array') 
        AND wp.`post_type`='messages'
        AND (wp.`post_title` LIKE '%$keyword%' OR 
wp.`post_content` LIKE '%$keyword%') 
        AND wm.`meta_key` = 'my_meta_key' 
        AND wm.`meta_value` LIKE '%$keyword%'

关于php - 如何在没有 WP_Query 'title' 的情况下搜索帖子的 ,'content' &'meta_query' 's' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816720/

相关文章:

mysql - 一台主机上有多个 WordPress

shell - 在 Unix 中使用 Less 转到特定行号

ios - 搜索时状态栏消失

php - Amazon S3/EC2-PHP和MySQL?

jquery - 单选按钮更改事件未触发

php - 带有可选过滤器的 MySQL 查询

HTML Masonry 图像布局

performance - badoo.com 用户搜索 - 如何做到这一点?

PHP 在 $_POST ['myjsonitem' ] 时添加双反斜杠,导致 json_decode 结果为 JSON_ERROR_SYNTAX

javascript - Netbeans 8.0.2 的语法高亮和代码折叠不适用于 PHP、HTML、Javascript