次のSQLクエリを変更して、一度に複数のメタキーを検索できるようにするにはどうすればよいですか。例えばuser_business AND user_about
結局、40から50種類のメタキーを探します。または、それらすべてを検索するオプションがある場合は、それがさらに良いでしょう。
<?php
/**
* @package WordPress
* @subpackage themename
*/
get_header(); ?>
<?php
$url = $_SERVER['REQUEST_URI'];
$tokens = explode('/', $url);
global $search;
$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
global $wpdb;
$usermeta = $wpdb->prefix . 'usermeta';
// get id of user
$select_user = "SELECT user_id FROM $usermeta WHERE meta_key = 'user_business' AND meta_value LIKE '%$searchQuery%'";
$user_id = $wpdb->get_var($select_user);
echo $user_id;
?>
</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(); ?>
実際に私がこの問題を解決する方法はキー名を提供することの代わりに、私はすべてのメタキーのために働いて戻ってきたフィールドを空白のままにしました。
あなたはWP_Queryの(meta_query)引数を使いたいでしょう( http://codex.wordpress.org/Class_Reference/WP_Query )
これは、2つの別々のメタキーの比較を使ったスニペットです。
$query_args = array(
'post_type' => 'event',
'order' => 'ASC',
'orderby' => 'meta_value_num',
'meta_key' => '_start_date',
'meta_query' => array (
array(
'key' => '_start_date',
'value' => $_start_of_month,
'compare' => '>',
),
array(
'key' => '_start_date',
'value' => $_end_of_month,
'compare' => '<',
),
),
);
重要:meta_queryは配列の配列を取ります。