当我使用meta_query时,WP_Query无效

时间:2017-01-12 09:19:48

标签: php wordpress metadata

我正在尝试创建一个循环自定义帖子类型的查询。管理员可以决定是否在后端显示任何帖子。我使用了使用高级自定义字段来制作管理员后端选项。我的管理员自定义' show_on_catalog_page' 这是我的疑问:

echo <<< EOT
<div id="foo">
<div id="bar">
</div>
</div>
EOT;

以下是我的回复:

$song_query_args_debug = array(
    'post_type' => 'songs',
    'post_status' => 'publish',
    'posts_per_page' => 20,
    'paged' => $paged,
    'meta_query' => array(
                         array(
                            'key'     => 'show_on_catalog_page',
                            'value'   => 'show',
                            'compare' => 'LIKE',
                        ),
                    ),
    );

任何人都可以给我任何提示,我在这里缺少什么?

我正在尝试获取自定义帖子类型&#39;歌曲的帖子&#39; meta key&#39; show_on_catalog_page&#39;价值将是&#39;显示&#39;

当我打开我的wp_debug时,我得到了这个结果。

WP_Query Object
(
    [query] => Array
        (
            [post_type] => songs
            [post_status] => publish
            [posts_per_page] => 20
            [paged] => 1
            [meta_query] => Array
                (
                    [0] => Array
                        (
                            [key] => show_on_catalog_page
                            [value] => show
                            [compare] => LIKE
                        )

                )

        )

    [query_vars] => Array
        (
            [post_type] => songs
            [post_status] => publish
            [posts_per_page] => 20
            [paged] => 1
            [meta_query] => Array
                (
                    [0] => Array
                        (
                            [key] => show_on_catalog_page
                            [value] => show
                            [compare] => LIKE
                        )

                )

            [error] => 
            [m] => 
            [p] => 0
            [post_parent] => 
            [subpost] => 
            [subpost_id] => 
            [attachment] => 
            [attachment_id] => 0
            [name] => 
            [static] => 
            [pagename] => 
            [page_id] => 0
            [second] => 
            [minute] => 
            [hour] => 
            [day] => 0
            [monthnum] => 0
            [year] => 0
            [w] => 0
            [category_name] => 
            [tag] => 
            [cat] => 
            [tag_id] => 
            [author] => 
            [author_name] => 
            [feed] => 
            [tb] => 
            [meta_key] => 
            [meta_value] => 
            [preview] => 
            [s] => 
            [sentence] => 
            [title] => 
            [fields] => 
            [menu_order] => 
            [embed] => 
            [category__in] => Array
                (
                )

            [category__not_in] => Array
                (
                )

            [category__and] => Array
                (
                )

            [post__in] => Array
                (
                )

            [post__not_in] => Array
                (
                )

            [post_name__in] => Array
                (
                )

            [tag__in] => Array
                (
                )

            [tag__not_in] => Array
                (
                )

            [tag__and] => Array
                (
                )

            [tag_slug__in] => Array
                (
                )

            [tag_slug__and] => Array
                (
                )

            [post_parent__in] => Array
                (
                )

            [post_parent__not_in] => Array
                (
                )

            [author__in] => Array
                (
                )

            [author__not_in] => Array
                (
                )

            [ignore_sticky_posts] => 
            [suppress_filters] => 
            [cache_results] => 1
            [update_post_term_cache] => 1
            [lazy_load_term_meta] => 1
            [update_post_meta_cache] => 1
            [nopaging] => 
            [comments_per_page] => 50
            [no_found_rows] => 
            [order] => DESC
        )

    [tax_query] => WP_Tax_Query Object
        (
            [queries] => Array
                (
                )

            [relation] => AND
            [table_aliases:protected] => Array
                (
                )

            [queried_terms] => Array
                (
                )

            [primary_table] => wp_posts
            [primary_id_column] => ID
        )

    [meta_query] => WP_Meta_Query Object
        (
            [queries] => Array
                (
                    [0] => Array
                        (
                            [key] => show_on_catalog_page
                            [value] => show
                            [compare] => LIKE
                        )

                    [relation] => OR
                )

            [relation] => AND
            [meta_table] => wp_postmeta
            [meta_id_column] => post_id
            [primary_table] => wp_posts
            [primary_id_column] => ID
            [table_aliases:protected] => Array
                (
                    [0] => wp_postmeta
                )

            [clauses:protected] => Array
                (
                    [wp_postmeta] => Array
                        (
                            [key] => show_on_catalog_page
                            [value] => show
                            [compare] => LIKE
                            [alias] => wp_postmeta
                            [cast] => CHAR
                        )

                )

            [has_or_relation:protected] => 
        )

    [date_query] => 
    [request] => SELECT SQL_CALC_FOUND_ROWS DISTINCT wp_posts.ID FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id  WHERE 1=1  AND ( 
  ( wp_postmeta.meta_key = 'show_on_catalog_page' AND wp_postmeta.meta_value LIKE '%show%' )
) AND wp_posts.post_type = 'songs' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 20
    [posts] => Array
        (
        )

    [post_count] => 0
    [current_post] => -1
    [in_the_loop] => 
    [comment_count] => 0
    [current_comment] => -1
    [found_posts] => 0
    [max_num_pages] => 0
    [max_num_comment_pages] => 0
    [is_single] => 
    [is_preview] => 
    [is_page] => 
    [is_archive] => 
    [is_date] => 
    [is_year] => 
    [is_month] => 
    [is_day] => 
    [is_time] => 
    [is_author] => 
    [is_category] => 
    [is_tag] => 
    [is_tax] => 
    [is_search] => 
    [is_feed] => 
    [is_comment_feed] => 
    [is_trackback] => 
    [is_home] => 1
    [is_404] => 
    [is_embed] => 
    [is_paged] => 
    [is_admin] => 
    [is_attachment] => 
    [is_singular] => 
    [is_robots] => 
    [is_posts_page] => 
    [is_post_type_archive] => 
    [query_vars_hash:WP_Query:private] => 85b8ef9fff7842765383ddd6a149b375
    [query_vars_changed:WP_Query:private] => 
    [thumbnails_cached] => 
    [stopwords:WP_Query:private] => 
    [compat_fields:WP_Query:private] => Array
        (
            [0] => query_vars_hash
            [1] => query_vars_changed
        )

    [compat_methods:WP_Query:private] => Array
        (
            [0] => init_query_flags
            [1] => parse_tax_query
        )

)

1 个答案:

答案 0 :(得分:0)

我已通过以下代码更新了您的代码,现在查看它应该可以使用新的wp_query,

$song_query_args_debug = array(
    'post_type' => 'songs',
    'post_status' => 'publish',
    'posts_per_page' => 20,
    'paged' => $paged,
    'meta_query' => array(
                         array(
                            'key'     => 'show_on_catalog_page',
                            'value'   => 'show',
                            'compare' => '=',
                        ),
                    ),
    );