###前提・実現したいこと
Wordpressには、公開状態「この投稿を先頭に固定表示」にチェックを入れると、記事を上部に固定できる機能があります。(sticky)
それをカテゴリで代用して「重要(important)」というカテゴリに所属している記事は、この機能と同じように先頭に固定表示し、且つ当年以外は表示しないという風にしたいと考えています。
■要望まとめ
・「重要(important)」と言うカテゴリに所属している場合、最初に表示(複数の場合投稿日時順でOK)
・次にそれ以外の投稿記事を表示(10件中2つ重要カテゴリなら、残り8件表示)
###該当のソースコード
PHP
1// 判定用にループ外で現在の日付’年’を取得しておく 2$today = date("Y"); 3 4<?php 5 echo '<table>'; 6 /*-----------------------------------------------------*/ 7 $args = array( 8 'post_type' => 'post', 9 'post_status' => 'publish', 10 'posts_per_page' => 10, 11 ); 12 $posts = get_posts($args); 13 /*-----------------------------------------------------*/ 14 foreach ($posts as $key => $post) { 15 // 変数処理 16 $d = strtotime($post->post_date); 17 $alr_date = date('Y/m/d', $d); 18 $post_y = date('Y', $d); 19 $cat = get_the_category(); 20 $cat_id = $cat[0]->term_id; 21 $cat_slug = $cat[0]->slug; 22 $cat_name = $cat[0]->name; 23 $alr_title = $post->post_title; 24 $content = $post->post_content; 25 $post_link = get_the_permalink(); 26 $add_link = get_field("external_link", $post->ID); 27 28 if( !empty($add_link) ) { 29 $alr_link = '<a href="'.$add_link.'" target="_blank">'.$alr_title.'</a>'; 30 }else{ 31 $alr_link = '<a href="'.$post_link.'" target="_self">'.$alr_title.'</a>'; 32 } 33 // 固定する記事か判定し、今年投稿された記事かを判定 34 if( $cat_slug == 'important' && $today == $post_y ) { 35 echo <<< EOF 36 37<tr class="clear"> 38 <th class="head">{$alr_date}</th> 39 <td class="cat"><span class="cat-num cat-num-{$cat_id}">{$cat_name}</span></td> 40 <td class="txt">{$alr_link}</td> 41</tr> 42 43EOF; 44 } 45 if( $cat_slug != 'important' ) { 46 echo <<< EOF 47 48<tr class="clear"> 49 <th class="head">{$alr_date}</th> 50 <td class="cat"><span class="cat-num cat-num-{$cat_id}">{$cat_name}</span></td> 51 <td class="txt">{$alr_link}</td> 52</tr> 53 54EOF; 55 } 56 } 57 /*-----------------------------------------------------*/ 58 echo '</table>'; 59?>
「固定する記事か判定し、今年投稿された記事かを判定」と言うifで「重要(important)」カテゴリに所属する当年の記事を先に判定して、次にifでそれ以外とやっているのですが、重要カテゴリが先に表示されるわけでもなく通常通り記事が日付順に10件並んでしまうだけのようです。
なんとなく、条件にマッチしているから重要だろうとそれ以外であろうと、出力して特にソート指示もないので通常通りの並びになっているんだろうなとは思うのですが、施策の検討がつかず困っているので何か改変のアドバイスがあればよろしくお願いいたします。
###公開状態「この投稿を先頭に固定表示」の機能補足
・複数の場合は、投稿日時でソートされて表示されるもようです。
・表示数は固定とされた記事が追加表示される模様です。(10件表示に固定4だと、14記事表示される)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。