亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有意外結果的排序比函數

具有意外結果的排序比函數

PHP
當年話下 2022-08-05 15:56:40
我已經設置了一個查詢來列出我的帖子,按某個自定義字段排序(這是我的博客中評論的個別書籍的發布日期)。$the_query = new WP_Query(array(    'post_type'         => 'book',    'posts_per_page'    => 10,    'meta_key'          => 'book_release_date',    'meta_type'         => 'NUMERIC',    'orderby'           => 'meta_value',    'order'             => 'DESC'));然后我這樣稱呼它:<?php if( $the_query->have_posts() ): ?><?php if (is_category()) { ?><div class="page-title" align="center"><h2 class="page-title-border"><?php _e(' Books:'); ?> <?php echo single_cat_title(); ?> (<?php echo $wp_query->found_posts; ?>) </h2></div><?php } ?><?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>有一個問題:主頁顯示基于上次發布的書籍順序的帖子,但是每個類別,研究等現在總是顯示為結果,最后發布的書籍,而不尊重所要求的類別或用于研究的關鍵字。為什么會發生這種情況?奇怪的是,如果我在上面的最新一行之后添加,它將正確顯示正確的結果,但第一個結果顯示10倍,始終相同。<?php wp_reset_query(); ?>
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

將您的自定義替換為以下內容:WP_Query


set_query_var( 'orderby', 'meta_value' );

set_query_var( 'orderby', 'DESC' );

set_query_var( 'meta_key', 'book_release_date' );

set_query_var( 'meta_type', 'NUMERIC' );

聽起來您有一個按類別等過濾的書籍的工作列表,現在您正在嘗試進入該列表以添加.如果是這樣,那么我看到一個問題:你發布的代碼會失去過濾,因為你創建了一個全新的帖子循環。wp_reset_query恢復了過濾后的后循環,這一事實使我相信,我們可以簡單地通過set_query_var修改此現有查詢,而不是創建一個新的。orderbyWP_Query


獎勵:如果您在使用,請執行以下操作:pre_get_postsfunctions.php


function wpse139657_orderby($query){ 

    // Uncomment this if() statement once you confirm that the orderby works

    //if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;


    $query->set( 'orderby', 'meta_value' ); 

    $query->set( 'order', 'DESC' ); 

    $query->set( 'meta_key', 'book_release_date' ); 

    $query->set( 'meta_type', 'NUMERIC' );


    return $query;

add_filter('pre_get_posts','wpse139657_orderby');


查看完整回答
反對 回復 2022-08-05
  • 1 回答
  • 0 關注
  • 93 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號