最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

wp query - Cannot get custom post

programmeradmin0浏览0评论

I want get all the post type st_tours associated to the taxonomy st_tour_type, when I browse the tour categories in the dashboard I have this link:

taxonomy=st_tour_type&post_type=st_tours

so I wrote this query:

   $args = array(
        'post_type'     => 'st_tours',
        'post_status'   => 'publish',
        'tax_query'     => array(
            'taxonomy'  => 'st_tour_type'
        ),
        'order'         => 'DESC'
    );

    $query = new WP_Query($args);
    var_dump($wpdb->found_posts);
    var_dump($wpdb->last_query);

but this return me just one post, and the query executed is actually incorrect 'cause I have:

 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (6565) ORDER BY meta_id ASC

what I did wrong?

UPDATE

$args = array(
    'post_type'     => 'st_tours',
    'post_status'   => 'publish',
    'tax_query'     => array(
        array(
            'taxonomy'  => 'st_tour_type'
        )
    ),
    'order'         => 'DESC'
);

$query = new WP_Query($args);

if ($query->have_posts()) : ?>
    <?php the_title(); ?>

    <?php echo 'test' ?>

<?php endif;

nothing is printed out

I want get all the post type st_tours associated to the taxonomy st_tour_type, when I browse the tour categories in the dashboard I have this link:

taxonomy=st_tour_type&post_type=st_tours

so I wrote this query:

   $args = array(
        'post_type'     => 'st_tours',
        'post_status'   => 'publish',
        'tax_query'     => array(
            'taxonomy'  => 'st_tour_type'
        ),
        'order'         => 'DESC'
    );

    $query = new WP_Query($args);
    var_dump($wpdb->found_posts);
    var_dump($wpdb->last_query);

but this return me just one post, and the query executed is actually incorrect 'cause I have:

 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (6565) ORDER BY meta_id ASC

what I did wrong?

UPDATE

$args = array(
    'post_type'     => 'st_tours',
    'post_status'   => 'publish',
    'tax_query'     => array(
        array(
            'taxonomy'  => 'st_tour_type'
        )
    ),
    'order'         => 'DESC'
);

$query = new WP_Query($args);

if ($query->have_posts()) : ?>
    <?php the_title(); ?>

    <?php echo 'test' ?>

<?php endif;

nothing is printed out

Share Improve this question edited Feb 4, 2021 at 12:13 sfarzoso asked Feb 4, 2021 at 11:31 sfarzososfarzoso 498 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

Seems like you have a missing array in tax_query

instead of

'tax_query'     => array(
    'taxonomy'  => 'st_tour_type'
),

should be

'tax_query'     => array(
    array (
        'taxonomy'  => 'st_tour_type',
        'operator' => 'EXISTS'
    )
),

When using tax query without terms/fields we must include the "operator" property.

You can check WP_Query taxonomy for more information on working with taxonomies.

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>