2016-11-04 21 views
1

これは奇妙な質問です。それはクライアントから依頼されていますが、私は以前に行われている例を見つけるのが難しいので、ほとんどの場合、この作業を行うためのヒントやトレイルを探しています。フィーチャーに設定できる投稿の数を制限する

私は、特集された投稿分類法で構築されたWordPressサイトを持っています。ホームページは、6つの特集記事を表示するように設定されており、デフォルトでは投稿された順に表示されます。

クライアントが望むのは、ある時点でどのように多くの投稿を設定できるのかを制限する機能があることです。したがって、これが理想的にどのように機能するかの例は、6つの特集記事があり、管理者が入り、新しい投稿を特集として設定することです。結果として、最も新しいものとして設定された投稿は、投稿された投稿カテゴリから自動的に削除され、いつでも6つしか設定されません。

文章で要約しようとすると、彼らはそれ自身で行う必要がないように、カテゴリから最も新しい最近の投稿を自動的に削除する機能を構築したがります。

誰かが似たようなことをやったことがある場合や、私がこの機能を構築するための学習をどこから始めることができるかを知っていれば、多くの助けとなるでしょう。私は彼らが明確に何を探しているのかを十分に説明できることを願っています。

答えて

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

関連する問題