2017-01-12 4 views
0

Я пытаюсь сделать запрос, который будет проходить через пользовательский тип сообщения. admin может решить, будет ли какая-либо запись отображаться или нет в бэкэнд. Я использовал используемое заранее настраиваемое поле, чтобы сделать вариант бэкэнда администратора. Мой администратор пользовательских «show_on_catalog_page» вот мой запрос:WP_Query не работает, когда я использую meta_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' => 'LIKE', 
         ), 
        ), 
    ); 

А вот мой ответ:

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 
     ) 

) 

Может кто-нибудь дать мне какие-то намеки, что это я здесь отсутствует?

Я пытаюсь получить пост «песня» пользовательского почтового типа, где мета ключа «show_on_catalog_page» значение будет «шоу»

и когда я включаю wp_debug я получил этот результат.

WordPress database error: [Not unique table/alias: 'wp_postmeta'] 
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_posts.post_type = 'songs' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 
+0

У вас не хватает ваш символ подстановки – yivi

+0

Спасибо за ваш комментарий. Но я думал, что wordpress автоматически добавляет символ подстановки более, я также использовал '='. но это не помогло. –

+0

Я ожидаю результатов: я пытаюсь получить сообщение о персонализированных типах песен, где мета-ключ «show_on_catalog_page» будет «показывать» –

ответ

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' => '=', 
         ), 
        ), 
    );