WordPress 如何使用元查詢跨多種貼文類型查詢
P粉170858678
P粉170858678 2024-01-16 15:52:53
0
1
360

我遇到了三個相當複雜的問題。首先,我有兩種自訂貼文類型:一種用於部門,一種用於員工。在員工中,您可以為每個員工選擇各種職位/欄位(標記為「附加角色」),但​​我需要的兩個是「員工」和「圖書館」。

我需要的第一個詢問是屬於任何部門的所有員工、屬於員工的員工或屬於圖書館的員工。有些員工只是其中之一,或是三者的組合。

接下來的兩個稍微簡單。我只對僅是職員(不屬於某個部門)或僅是圖書館(也不屬於某個部門)的員工進行一次查詢。

我一直在編寫和重寫這些查詢,但沒有任何進展。我認為需要一些我無法弄清楚的 SQL 命令。我將分享我的最新迭代。

對於第一個查詢(部門、員工或圖書館的員工):

$args = array(
    'post_type'   => 'employee',
    'post_status' => 'publish',
    'posts_per_page'  => '-1',
    'orderby'   => 'meta_value',
    'meta_key'  => 'last_name',
    'order'     => 'ASC',
    'meta_query' => array(
        array(
            'key'     => 'additional_roles',
            'value'   => array('staff', 'library'),
            'compare' => 'IN',
        ),
    ),
);
$query = new WP_Query($args);

第二個(僅限工作人員)

$args = array(
    'post_type' => 'employee',
    'post_status' => 'publish',
    'posts_per_page' => '-1',
    'meta_key' => 'additional_roles',
    'meta_value' => 'staff',
);
$query = new WP_Query($args);

圖書館的查詢與職員相同,只是meta_value是'library'。我知道第一個不應該工作,因為它沒有連接到部門 cpt,但不知道該怎麼做。但我不確定為什麼其他兩個不起作用。目前我沒有收到任何帖子返回。

我希望我已經解釋得夠好了。如果需要的話,我很樂意分享更多。謝謝!

P粉170858678
P粉170858678

全部回覆(1)
P粉200138510

posts_per_page 是一個INT(您提供一個字串)

$args = array(
    'post_type'   => 'employee',
    'post_status' => 'publish',
    'posts_per_page'  => -1,
    'orderby'   => 'meta_value',
    'meta_key'  => 'last_name',
    'order'     => 'ASC',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key'     => 'additional_roles',
            'value'   => array('staff', 'library'),
            'compare' => 'IN',
        ),
        array(
            'key' => 'department',
            'compare' => 'EXISTS',
        ),
    ),
);
$first_query = new WP_Query($args);

$staff_args = array(
    'post_type' => 'employee',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_key' => 'additional_roles',
    'meta_value' => 'staff',
);
$staff_query = new WP_Query($staff_args);

$library_args = array(
    'post_type' => 'employee',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_key' => 'additional_roles',
    'meta_value' => 'library',
);
$library_query = new WP_Query($library_args);

我還沒有測試過這段程式碼。讓我知道這是否有幫助

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!