上下文:我創建了一個熱門帖子小部件,它使用元字段作爲該帖子受歡迎程度的指標。這個小部件與社交媒體共享插件捆綁在一起,當他們獲取流行網絡的份額時,它將這些計數存儲到元字段中。然後,我們可以根據文章在社交媒體上分享的次數來查詢該元字段以顯示熱門帖子。爲什麼這個自定義WordPress循環不使用我的參數?
代碼示例:這是我正在使用的一小段代碼。顯然,在這部分代碼之後,我們關閉while循環,關閉條件,重置後查詢數據等等。這個小部件文件的完整內容可以在GitHub上找到:https://github.com/warfare-plugins/social-warfare/blob/master/functions/widgets.php您看到下面的部分從附近開始該文件的第330行。
// If a custom timeframe is not being used....
if($timeframe == 0):
// Create the arguments for a query without a timeframe
$swp_args = array(
'posts_per_page' => $count,
'post_type' => 'post',
'meta_key' => '_'.$network,
'orderby' => 'meta_value_num',
'order' => 'DESC',
);
// If a custom timeframe is being used....
else:
// Create the arguments for a query with a timeframe
$swp_args = array(
'posts_per_page' => $count,
'post_type' => 'post',
'meta_key' => '_'.$network,
'orderby' => 'meta_value_num',
'order' => 'DESC',
'date_query' => array(
'column' => 'post_date',
'after' => '- '.$timeframe.' days'
)
);
endif;
// Reset the main query
wp_reset_postdata();
// Query and fetch the posts
$swq = new WP_Query($swp_args);
// Begin the loop
if($swq->have_posts()) :
$i = 1;
while($swq->have_posts()):
$swq->the_post();
問題:我們有剛剛超過5000點這個插件。但是,在少數幾個網站上,它不使用我們的自定義查詢,而是使用默認的WordPress查詢。在這些情況下,它會返回最新的帖子,並根據每頁WordPress的帖子設置返回帖子的數量。實際上,例如,在一個網站上,它可以在一個頁面上完美顯示,但在歸檔/類別頁面上,它會恢復爲使用WordPress默認循環而不是我的自定義查詢。
我不知道他們是否是另一個插件或主題添加了一些鉤子或什麼不是WordPress的查詢,並重寫我的自定義參數。
我迄今試過的唯一的事情是在我的查詢之前和之後添加wp_reset_postdata(),但它似乎沒有解決任何問題。
問題:有沒有什麼辦法可以運行這個自定義查詢,並保證它運行自定義查詢並且永遠不會運行默認的WordPress查詢?
讓我引用我在原來的職位說作出迴應:「很顯然,這部分後,代碼,我們關閉while循環,關閉條件,重置後期查詢數據等。這個小部件文件的完整內容可以在GitHub上找到:https://github.com/warfare-plugins/social-warfare /blob/master/functions/widgets.php「 –