我目前有以下代码,在user\\u business表中有一个名为“Clark Farm”的用户。下面的代码不返回任何内容。如果删除搜索词,则会列出所有用户。我正在试图确定为什么搜索不起作用。。
<?php
/**
* @package WordPress
* @subpackage themename
*/
get_header(); ?>
<?php
$url = $_SERVER[\'REQUEST_URI\'];
$tokens = explode(\'/\', $url);
$search = $tokens[sizeof($tokens)-1];
$searchQuery = str_replace("-", " ", $search);
?>
<?php echo $search; ?>
<div id="main">
<div id="primary">
<div id="content">
<?php the_post(); ?>
<div class="contentLeft">
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?> role="article">
<h1 class="entry-title">Search Results for: <?php echo $searchQuery; ?></h1>
<div class="entry-content">
<?php
// WP_User_Query arguments
$args = array (
\'search\' => \'Clark\',
\'search_columns\' => array( \'user_business\' ),
\'count_total\' => true,
\'fields\' => \'all_with_meta\',
);
// The User Query
$user_query = new WP_User_Query( $args );
// The User Loop
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
echo $user->user_business . \'<br>\';
}
} else {
echo \'NOT WORKING!\';
}
?>
</div><!-- .entry-content -->
</article><!-- #post-<?php the_ID(); ?> -->
</div>
<div class="contentRight"><?php if ( dynamic_sidebar(\'main-sidebar\') ) : else : ?><?php endif; ?></div>
</div>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_footer(); ?>
SO网友:s_ha_dum
WP_User_Query
搜索the $wpdb->users
table. 它不会加入您的自定义表。它怎么知道JOIN
? 可能的表名称和结构实际上是无限的。
我相信你可以在pre_user_query
在WHERE
但没有JOIN
值,因此您必须更改query_from
和query_where
. 这可能很棘手,但应该是可以做到的。
编辑:
如果有新的信息,现在听起来what you need is a meta_query
.
$args = array(
\'count_total\' => true,
\'fields\' => \'all_with_meta\',
\'meta_query\' => array(
array(
\'key\' => \'user_business\',
\'value\' => \'Clark\',
\'compare\' => \'=\'
)
)
);
$user_query = new WP_User_Query( $args );
假设您的用户元密钥是
user_business
你想要一个完全匹配的。有关的其他值,请参见Codex
compare
.