2012-03-14 24 views
0

私はmagic fieldsをほとんど排他的に(デフォルトの投稿などではなく)使用するWordPressサイトを構築しました。検索Wordpress Magic Fieldsのアイテムですか?検索結果がありません

しかし、私は現在、検索機能を実装しようとしており、WordPressがMagic Fieldsによって作成されたコンテンツを見つけることができないことを発見しました。

私はカスタムWP_Queryを作成するために検索を変更しましたが、まだ運がありません。たとえば、私は「プロジェクト」のpost_typeを持っています:

$searchValue = $_GET['s']; 

    $args = array(
     'post_type' => 'project', 
     'posts_per_page' => -1, 
     'meta_value' => $searchValue, 
     'meta_key' => 'title' 
    ); 

    $query = new WP_Query($args); 

これは結果を返しません。どこが間違っていますか?

事前に感謝します。

答えて

3

私も魔法の分野とワードプレスの検索に問題がありました。標準のWordPress検索では、投稿ボックスの内容のみが検索されます。魔法のフィールドコンテンツを使って検索を処理する方法は、ポストメタを検索することです。

$add_value = true; 
$query_array = array(); 
$query_for_posts = "page_id="; 
$search_guery = $_GET['s']; 
$search_results = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."postmeta WHERE meta_value LIKE '%" . $search_guery ."%' ORDER BY post_id"); 

if(!empty($search_results)) 
{ 
    foreach ($search_results as $search_result) 
    { 
     //loop through results 
     for($i=0;$i<sizeof($query_array);$i++) 
     { 
      //check if post id in the array 
      if($search_result->post_id == $query_array[$i]) 
       $add_value = false; 
     } 
     if($add_value) 
     { 
      //add the post id to the array if not a duplicate 
      array_push($query_array, $search_result->post_id); 
      //also add id for WP_Query 
      $query_for_posts .= $search_result->post_id . ","; 
     } 
     $add_value = true; 
    } 
} 

次に、結果を表示します。

if(!empty($query_array)) 
{ 
    for($i=0;$i<sizeof($query_array);$i++) 
    { 
     //get post from array of ids 
     $post = get_page($query_array[$i]); 
     //make sure the post is published 
     if($post->post_status == 'publish') 
      echo '<h3><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></h3>'; 
    } 
} 
else 
{ 
    //tell the user there are no results 
} 

WP_queryで$ query_for_posts変数を使用することもできます。これは、検索結果からの値page_id = 1,3,7,9,23 ...すべてのポストIDを持つ必要があります。

+0

完璧、ありがとうございます! – waffl

関連する問題