cari

Rumah  >  Soal Jawab  >  teks badan

Cara WordPress menggunakan pertanyaan meta untuk membuat pertanyaan merentas pelbagai jenis siaran

Saya mempunyai tiga masalah yang agak kompleks. Pertama, saya mempunyai dua jenis jawatan tersuai: satu untuk jabatan dan satu untuk pekerja. Dalam Pekerja, anda boleh memilih pelbagai jawatan/bidang untuk setiap pekerja (dilabelkan "Peranan Tambahan"), tetapi dua yang saya perlukan ialah "Pekerja" dan "Perpustakaan".

Pertanyaan pertama yang saya perlukan ialah semua pekerja milik mana-mana jabatan, pekerja milik pekerja atau pekerja milik perpustakaan. Sesetengah pekerja hanyalah salah seorang daripada ini, atau gabungan ketiga-tiganya.

Dua seterusnya lebih mudah sedikit. Saya hanya membuat satu pertanyaan untuk pekerja yang hanya kerani (bukan sebahagian daripada jabatan) atau hanya perpustakaan (juga bukan sebahagian daripada jabatan).

Saya telah menulis dan menulis semula pertanyaan ini tetapi tidak membuat sebarang kemajuan. Saya fikir ia memerlukan beberapa arahan SQL yang saya tidak dapat fikirkan. Saya akan berkongsi lelaran terbaru saya.

Untuk pertanyaan pertama (jabatan, kakitangan atau kakitangan perpustakaan):

$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);

Kedua (Kakitangan Sahaja)

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

Pertanyaan untuk perpustakaan adalah sama seperti untuk kakitangan, kecuali nilai_meta ialah 'perpustakaan'. Saya tahu yang pertama tidak sepatutnya berfungsi kerana ia tidak disambungkan ke cpt jabatan, tetapi tidak tahu apa yang perlu dilakukan. Tetapi saya tidak pasti mengapa dua yang lain tidak berfungsi. Pada masa ini saya tidak menerima sebarang siaran kembali.

Saya harap saya telah menerangkannya dengan cukup baik. Saya berbesar hati untuk berkongsi lebih banyak lagi jika perlu. Terima kasih!

P粉170858678P粉170858678317 hari yang lalu400

membalas semua(1)saya akan balas

  • P粉200138510

    P粉2001385102024-01-17 13:10:46

    posts_per_page 是一个INT(anda sediakan tali)

    $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);

    Saya belum menguji kod ini lagi. Beritahu saya jika ini membantu

    balas
    0
  • Batalbalas