2016-01-18 82 views
0

我寫了一個名爲'employees'的自定義帖子類型,現在試圖通過在顯示部門頁面後調用此帖子類型來查詢它。我創建了一個帶有一些參數(如部門)的自定義元框,並帶有一個下拉菜單,因此人們可以輕鬆地將該人員分配到正確的部門。如果符合標準,員工的照片(或在我的情況下,字樣crap作爲測試)應顯示。Wordpress中的元查詢被忽略

但是,我似乎有嘗試獲得正確的查詢問題。我的代碼如下。我需要清理一些東西,並且它的代碼正在進行中,所以不要寫下它是如何編程的。它只是現在的查詢。

這是元框

$prefix = 'shm_'; 
$meta_box = array(
    'id' => 'meta-employees', 
    'title' => 'Overige informatie', 
    'page' => 'employees', 
    'context' => 'normal', 
    'priority' => 'high', 
    'fields' => array(
     array(
      'name' => 'position', 
      'desc' => 'The name of the job position', 
      'id' => $prefix . 'position', 
      'type' => 'text', 
      'std' => '' 
     ), 
     array(
      'name' => 'department', 
      'desc' => 'Select the department this employee is working in', 
      'id' => $prefix . 'department', 
      'type' => 'select', 
      'options' => array('Board', 'Sales, Marketing & Revenue', 'Option 3', 'Option 4', 'Option 5', 'Option 6') 
     ) 
    ) 
); 

的代碼,這是查詢

<?php 
if(!is_front_page()){ 
      if (is_page('board')){ 
       $page = 'board'; 
      }elseif (is_page('sales-marketing-revenue')){ 
       $page = 'Sales, Marketing & Revenue'; 
      } 

      echo $page; 

      $i = 0; 

      $args = array(
       'numberposts' => -1, 
       'post_type' => 'employees', 
       'meta_query' => array(
        'key'  => 'department', 
        'value' => $page, 
        'compare' => '=', 
       ) 
      ); 


      query_posts($args); 
       if (have_posts()) : 
        while (have_posts()) : the_post(); 

        echo "crap"; 
      ?> 


       <?php endwhile; ?> 
      <?php endif; ?> 
     <?php } ?> 

這一塊技術上的工作,但它吐出所有的員工,而不是我設置的那些一個特定的部門,如board。當我打印數組時,一切看起來都很好。

Array ([numberposts] => -1 [post_type] => employees [meta_query] => Array ([key] => department [value] => Sales, Marketing & Revenue [compare] => =))

然而,有市場銷售收入&連有它只有1人,而不是3(佔員工總數的到目前爲止,我已進入),它們顯示出來。它看起來像忽略了元查詢。

有人可以幫助我嗎?

+0

在WordPress的法典確切的說:https://codex.wordpress.org/Class_Reference/WP_Meta_Query – Dorvalla

回答

0

我在數據庫中查看它是如何輸入的。我意識到我剛剛更新了文件,並帶有正確的文字。 Wordpress沒有更新數據庫中的這些更改,因此我必須調用舊的鍵名,而不是新的鍵名。我想這是我的一個缺陷,爲什麼它無法讀取它。現在正確的查詢如下。

$args = array(
    'post_type' => 'employees', 
    'meta_query' => array(
     array(
      'key'  => 'shm_text', 
      'value' => $page, 
      'compare' => '=' 
     ) 
    ) 
);