我根据帮助解决这个问题的投稿人(下文)的建议,重新措辞了这个问题。
正如我们所知,WordPress搜索在默认情况下只在这个搜索函数中包含de wp\\u posts数据库表。
在“插件表”部分中的关键字搜索之后Custom Queries WordPress CODEX“我需要将wp\\u usermeta表与wp\\u posts表连接起来。
我使用了这些函数。php在子主题中尝试将wp\\u usermeta表与wp\\u posts表连接起来,以便显示其数据。
具体来说,我需要获取并在搜索结果中显示从wp\\u usermeta表中的meta\\u键“country”存储的“country”字段。
我尝试了下面的两个代码,但没有成功。我得到的只是“无结果”,包括在函数中包含以下两个代码之前显示良好的帖子。php。
请对此提出建议。
谢谢
代码1:
function cf_search_join( $join ) {
global $wpdb;
if ( is_search() ) {
$join .=\' LEFT JOIN \'.$wpdb->wp_zyus_usermeta. \' ON \'. $wpdb->wp_zyus_posts. \'.ID = \' . $wpdb->wp_zyus_usermeta. \'.post_id \';
}
return $join;
}
add_filter(\'posts_join\', \'cf_search_join\' );
function cf_search_where( $where ) {
global $wpdb;
if ( is_search() ) {
$where = preg_replace(
"/\\(\\s*".$wpdb->wp_zyus_posts.".post_title\\s+LIKE\\s*(\\\'[^\\\']+\\\')\\s*\\)/",
"(".$wpdb->wp_zyus_posts.".post_title LIKE $1) OR (".$wpdb->wp_zyus_usermeta.".meta_value LIKE $1)", $where );
}
return $where;
}
add_filter( \'posts_where\', \'cf_search_where\' );
function cf_search_distinct( $where ) {
global $wpdb;
if ( is_search() ) {
return "DISTINCT";
}
return $where;
}
add_filter( \'posts_distinct\', \'cf_search_distinct\' );
代码2:
add_filter( \'posts_join\', \'acme_search_submission_join\' );
function acme_search_submission_join( $join ) {
if ( is_admin() || ! is_search() ) {
return $join;
}
global $wpdb;
$join .= "JOIN $wpdb->wp_zyus_usermeta ON $wpdb->wp_zyus_posts.ID = $wpdb->wp_zyus_usermeta.wp_zyus_posts_id ";
return $join;
}