2014-01-20 49 views
0

我已經編寫了一個基於Wordpress的博客的自定義存檔顯示,基於發現的優秀代碼HERE填充自定義WordPress發佈存檔排除某些發佈分類

基本上,它做什麼:

Custom archive image from www.wpbeginner.com

但我需要找到過濾掉存檔某些職位屬於哪些類別內的不應該是archiveable的一種方式。例如,如果一個類別「Misc。Ideas」包含的條目不是真正的帖子,那麼博客的所有者不希望它們在帖子歸檔中可用。

我一直在找遍,找不到適合我的東西。我想在THIS東西可以幫助我,但我正在測試的東西了,並不能爲我工作的東西。所以我轉向你們。也許你有一個想法...

我現在的PHP代碼非常簡單。顯然,問題是過濾帖子在查詢本身,但我似乎無法找到一個適合我的查詢。

加/減,我爲了滿足特定需求給它做了細微的調整,它基本上是從第一源給這裏獲得的代碼:

global $wpdb; 
$limit = 0; 
if(is_date()) { 
    $year_now = get_the_time('Y'); 
} else { 
    $year_now = date('Y'); 
} 
$year_prev = null; 
$months = $wpdb->get_results("SELECT DISTINCT MONTH(post_date) AS month , YEAR(post_date) AS year, COUNT(id) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date <= now() and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC"); 
foreach($months as $month) : 
$year_current = $month->year; 
if ($year_current != $year_prev){ 
    if ($year_prev != null){ 
     // Do nothing 
    } 

    /* BREAK PHP HERE FOR SOME HTML */ 
    <li class="archive-year"><a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/"><?php echo $month->year; ?></a></li> 
    /* BACK ON REGULAR PHP */ 

} 
if($year_current == $year_now) { 

    /* BREAK PHP HERE FOR SOME HTML */ 
    <li class="archive-month"><a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"><span class="archive-month"><?php echo date_i18n("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span></a></li> 
    /* BACK ON REGULAR PHP */ 

} 
$year_prev = $year_current; 
endforeach; 

回答

0

嗯,好像沒有很多人那裏有這個問題或者對任何類似的東西感興趣。但是,在遵循SO性質的情況下,如果有人遇到類似的問題,他們會很高興地發現我能夠通過使用我發現的一些東西並將它們粘在一起以及5小時的試驗來解決它,錯誤,在其端部的我想出了以下查詢:

SELECT DISTINCT MONTH(post_date) AS month, YEAR(post_date) AS year, COUNT(id) as post_count FROM $wpdb->posts 
INNER JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) 
INNER JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) 
WHERE $wpdb->term_taxonomy.term_id != X AND $wpdb->term_taxonomy.parent != X 
AND $wpdb->term_taxonomy.term_id != Y AND $wpdb->term_taxonomy.parent != Y 
AND $wpdb->term_taxonomy.term_id != Z AND $wpdb->term_taxonomy.parent != Z 
AND $wpdb->term_taxonomy.taxonomy = 'category' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post' 
AND post_date <= now() and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC 

Xÿ,和ž是由種類ID號被取代。 (您可以通過轉到Wp-admin部分來找到這些內容,您可以在其中編輯類別並將鼠標懸停在希望隱藏自定義存檔的類別上;您會注意到鏈接URL有一個&tag_ID=#部分,其中#是類別號碼。)

嗯,這樣做很好。希望它可以幫助那裏的人!

相關問題