2016-11-04 48 views
1

這是一個奇怪的問題。這是客戶的要求,但我無法找到它之前完成的任何示例,所以我主要只是尋找任何提示或跟蹤來完成這項工作。限制多少帖子可以設置爲精選

我有一個WordPress的網站建立了一個精選的職位分類。主頁設置爲僅顯示六個有特色的帖子,默認情況下它會按發佈順序顯示它們。

客戶想要的是,某種功能會限制在任何給定時間可以設置多少帖子。所以理想情況下如何工作的一個例子是有六個特色帖子,管理員進入並設置一個新的帖子爲特色。因此,最近最少設置爲精選的帖子會自動從精選帖子類別中刪除,確保在任何時候都只設置六個精選帖子。

因此,要想在句子中總結一下,他們想要建立一些功能,可以自動從該類別中刪除最近發佈的特色帖子,以便他們自己不必這樣做。

如果有人已經做了類似的事情,或者知道我可以從哪裏開始學習構建這個功能,那麼我很難找到此前已經完成的任何示例,這將有很大的幫助。我希望我能夠清楚地描述他們在尋找什麼。

回答

0

據我所知,精選文章不是WordPress核心的一部分,所以這將是您的主題是處理特色的郵政編碼。

不知道你的主題是什麼,我真的不能有特定的幫助。

關閉我的頭頂,創建一個精選的帖子數組,使用count()跟蹤數組中的項目數。如果使用array_unshift()添加到數組前端的數據,並使用array_pop()從數組後部刪除帖子,當它超過最大數量的精選帖子時。

這裏是一篇文章,可能會給你一個如何完成它的想法。 http://www.hongkiat.com/blog/wordpress-featured-content/

聯繫您的主題創建者的支持也是一個不錯的選擇。

+0

的主題是下劃線和功能選項是通過創建一個自定義分類,如果有幫助。感謝您的鏈接,我一定會閱讀並嘗試在這裏開始尋找解決方案。 –

0

其實這不是那麼容易,因爲特色的帖子功能不是爲此而構建的。不過,我建議如下:

僞代碼:

// On save post check if the post is featured 

// If the post is featured get the number of featured posts from the database 

// if the number of featured posts from the database including the current post is greater than six un-feature the post with the oldest timestamp 

此代碼是未經測試,但它應該工作類似:

add_action('save_post','ensure_only_6_stickies'); 

function ensure_only_6_stickies($post_id) { 

    if(is_sticky($post_id)) { 
    $stickies = get_option('sticky_posts'); 

    if(is_array($stickies) && !in_array($post_id,$stickies) && count($stickies)>=6) { 
     $stickies = array_slice($stickies,5); 
     array_push($post_id,$stickies); 
     update_option('sticky_posts',$stickies); 
    } 
    } 
} 
+0

特色選項是通過自定義分類來完成的,所以我不確定這是否會影響代碼的工作方式,但這裏的邏輯絕對讓我更近了一步。 –

+0

啊,我以爲你在說粘貼。但是這個概念應該非常相似。在save_post檢查多少帖子是特色,如果它> 6踢最老。 – Blackbam

相關問題