(年別)記事一覧をテンプレートではなくfunctions.phpに書きたい

※段落ごとにリンクを吐くより、リスト形式の方が利用頻度高いですよねと思い直して修正しました(2016.12.15)

WordPressで年別の記事一覧を表示するにあたって、テンプレートファイルにphpで書く方法はやった事がありましたが、functionsに書いてショートコードで呼び出す方法はなかなか分からなかったので記録しておきます。

こんな感じで出力されるものを作る

<h4>2016年</h4>
<ul>
  <li>タイトルA</li>
  <li>タイトルB</li>
</ul>
<h4>2015年</h4>
<ul>
  <li>タイトルA</li>
  <li>タイトルB</li>
</ul>

テンプレートに直接書いて年別一覧を出す方法はこちらの記事を参考にさせて頂きました。
WordPress備忘録(月別記事一覧・年月別アーカイブ)
[解決済] カスタム投稿タイプ内で月別記事一覧

↑この記事を参考にテンプレートに直接書いて記事一覧を出す方法はできました。
でも今回はテンプレートは触らずショートコードで呼び出したかったので悩みました。
そして分かったのがコレ。

functions.phpに書くコード

function getYear() {
 global $post;
 $oldpost = $post;
 $myposts = query_posts(
array(
 'posts_per_page'=> '-1',
 'post_type' => 'post',
 'order'=>'DESC',
 'orderby'=>'date'
));
 if ( have_posts() ) :
 $retHtml='';
 $myposts = false; // 比較用の変数を初期化
 while ( have_posts() ) :
 the_post();
 if( $myposts != get_post_time('Y') ) : // 投稿年を比較
 if ( $myposts !== false ) : // 最初のループは除外。2回目以降で投稿年が異なれば閉じタグを出力
 $retHtml.='</ul>';
 endif;
 $retHtml.='<h4>'.get_post_time('Y年').'</h4><ul>';
 endif;
 $retHtml.='<li>'.get_post_time('Y/m/d').'</span><a href="'.get_permalink().'">'.the_title("","",false).'</a>';
 $retHtml.=do_shortcode('[NEW]');
 $retHtml.='</li>';
 $myposts = get_post_time('Y'); // 比較用の変数に年を代入
 endwhile;
 wp_reset_query();
 $post = $oldpost;
 return $retHtml;
 endif;
}
add_shortcode("YearList", "getYear");

22行目のこの部分↓は

$retHtml.=do_shortcode('');

このショートコードで14日間Newマークを表示する様にしています↓

function getNEW() {$days=14;
$today=date('U');$entry=get_the_time('U');$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) {return "\n" . '<span class="red">NEW</span>' . "\n";}}
add_shortcode('NEW', 'getNEW');

これで、ショートコード[YearList]で好きな場所に出せますね。

こんな感じで↓

2021年

2021/05/09カイトの結膜炎・リルの肥大型心筋症通院

2020年

2020/12/31今年観た映画・ドラマ・アニメなどを振り返る

2020/12/132021年版カイト&リルカレンダー

2020/11/15シミ取りのレーザー治療を受けた

2020/10/27血の様なものを吐いたカイト

2020/10/11胸にしこりが出来ていた

2020/09/23WordPress FAQ ManagerのPHP7.x~対応

2020/08/12MetaSliderがめちゃめちゃエラー吐く(2020.8.12 AM10:30)

2020/07/20親ページIDを使ってサイトマップを作るショートコードの作り方

2020/07/15WordPressのwp-cron.phpをサーバーのcronで動かす

2020/07/07Youtubeリスナー猫

2020/06/08「スコ猫のカイトとリル」LINEスタンプができました!

2020/06/01カイトのストレス2

2020/05/30片付けとは

2020/01/24unregister_widgetで「MetaSlider」を非表示にする場合

2020/01/23カイトのストレス

2019年

2019/12/22リル(肥大型心筋症 通院8回目)

2019/12/19WordPressで「無効な投稿形式( Notice: Array to string conversion in…)エラー」

2019/11/27meta要素のdiscriptionに本文か抜粋を出力したい(プラグイン無し)

2019/11/07Word Camp Tokyo 2019!一人参加でも楽しい!

2019/10/27リル(肥大型心筋症 通院7回目)

2019/10/15お嬢なリル

2019/09/29リル(肥大型心筋症 通院6回目)食生活を見直そう

2019/09/28交通事故に遭った

2019/09/02リル(肥大型心筋症 通院5回目)

2019/08/30熱中症(脱水症)で動けなくなった体験

2019/08/24リル(肥大型心筋症)通院4回目:ついに体重が3kgを超えた日!

2019/08/19リル:薬の量

2019/08/14リル通院3回目:肥大型心筋症

2019/08/11リル通院2回目:肥大型心筋症

2019/08/08リルが肥大型心筋症

2019/07/25リルの抜糸

2019/07/16【WordPress】マルチサイトの5.2.xアップデートで「Notice: wp_check_site_meta_support_prefilter…」

2019/07/14避妊手術を受けたリル

2019/07/08リルの血液検査

2019/06/17第25回石ふしぎ大発見展(大阪ショー)に行った

2019/06/04【jQuery】ファイルへのリンクにファイル名も表示させる

2019/01/08鉱物のミニ展示ケースをプチプラ工作

2018年

2018/12/21猫バカってほんとバカと思う話

2018/12/13第5回なんばの神社で石まつりに行った

2018/11/28サイトのURLがTwitterに有害と判定されてしまったら

2018/11/14トイレの番人

2018/11/14目の周りにできた稗粒腫(はいりゅうしゅ)を自分で取った話

2018/10/29誤飲

2018/10/26プラグインを使わずにダッシュボードにウィジェットを追加する

2018/10/13ミネラルフェスタ

2018/10/12「#2 WP ZoomUP『2018年のフロントエンドのトレンドから見るコーディング事情』」に参加しました

2018/10/03ブラックロータス(サナギ新宿)

2018/10/01WP ZoomUPに参加しました。 #wpzoomup

2018/09/28WordCamp Tokyo 2018に行きました。 #wctokyo

2018/09/26名物かまどの話

2018/04/28平日 の 富士急ハイランド 満喫日記!

2018/04/17猫の為にカウンター下の隙間を塞ぐ

2017年

2017/11/17jsもcssもenqueue(エンキュー)しよう!

2017/11/13猫が夢中になってる時は要注意

2017/10/02画像上で右クリック禁止・ドラッグ操作禁止にする方法

2017/07/07Word Camp Kyoto 2017に行ってきました

2017/06/19リルといっしょ

2017/06/05猫と暮らすとだいたいこうなる

2017/05/26GWが終わり絶望の私を見るカイト

2017/04/16【WordPress】(掲載ON/OFF付き)カスタムタクソノミ別記事一覧

2017/04/05ねこ短歌

2017/03/01【WordPress】ユーザー別に管理画面項目を整理

2017/02/16去勢手術から1週間後のカイト

2017/02/07帰宅後の様子

2017/02/06猫たちの不妊 去勢 手術

2017/02/01血液検査

2017/01/28予防接種

2017/01/07【WordPress】年別記事一覧で「年が明けたら1件も記事が無い」を回避

2017/01/03【WordPress】カスタム分類を条件に記事一覧を取得し、アーカイブでタブ表示

2016年

2016/12/28風船、毛糸、木工ボンドで工作

2016/12/23get_postsだと「この投稿を先頭に固定表示」が無効

2016/12/22WordPressの記事およびメディアファイルにベーシック認証

2016/12/16年別記事一覧(今年だけフルオープン)

2016/12/09(年別)記事一覧をテンプレートではなくfunctions.phpに書きたい

2016/12/07暴れん坊リルちゃん

2016/11/22プラ板で蝶々モチーフ作成

2016/11/22WordPressを翻訳してみよう(11/29追記)

2016/11/04カスタムフィールドテンプレートで表示切替

2016/09/28WordCamp Tokyo 2016に行ってきました

2016/09/23秋は抜け毛の季節

2016/09/04ストーキングカイト

2016/08/31リルがご飯を食べなくなった時の事

2016/08/28流しジャーキー

2016/05/03カイトのかおり

2016/03/03猫を覗こう

2016/02/29エスケープ段ボール!

2016/02/29リルの隠れ家

2016/02/23猫の鳴き方

2016/02/18恋の季節

2016/02/12インフルエンザ感染の人があらわれた!

2016/02/09リルは愛想が無い

2016/02/03おにッ子

2016/01/13公開後1カ月以上経過したWordPressをマルチサイト化

2016/01/05見てる

2015年

2015/12/25見守ってる

2015/11/16猫たちの性格

2015/10/22あふれ出すぎた想い

2015/10/20あの場所に行きたい

2015/10/09目からカイトが

2015/10/02スコティッシュフォールド

2015/09/24叱られた時に出る性格

2015/09/18元気な子

2015/09/10【WordPress】jQuery Feedsを使ってHTMLサイトにWordPress記事の一覧を表示する

2015/09/08リルとねこじゃらし

2015/09/02カイトが元気ない

2015/08/19何があったの?

2015/08/04機械性じんましんでお悩みの方

2015/07/21失っては手に入れる

2015/07/17【WordPress】特定のターム(term)が指定された記事だけ一覧から除外

2015/07/06自分の爪見てごらん

2015/06/30休ませてください

2015/06/23破壊神リル

2015/06/22うんちマン達との戦い

2015/06/15やきもちぃ

2015/06/12カイトの受難

2015/06/12心配ないさ~!

2015/06/11猫を愛しすぎてる

2015/06/05嫉妬の炎

2015/06/02期待と圧力

2015/05/28眠れない夜

2015/05/25新しい家族

2015/05/18WordPress4.2.2のテーマカスタマイザーに項目追加

2015/05/15人間は大きな猫

2015/05/06衣替え

2015/04/30新しい事をおぼえた

2015/04/20実力行使してくる

2015/04/17アピールがダイレクト

2015/04/09去勢手術は保留にした

2015/04/07猫おもちゃランキング♪

2015/04/05去勢手術・・・

2015/04/02おしおきじゃ!

2015/03/19これがツンデレかい?

2015/03/13西暦表示を和暦表示に変更

2015/03/13query_postsで記事一覧の期間を指定

2015/03/12カスタム投稿タイプの分類別一覧を年度毎に固定ページに表示

2015/02/25見ているなッ!

2015/02/12興味を持ってるみたい

2015/02/05他のページの投稿記事本文を表示

2015/02/05キャットタワーを組み立てた

2015/02/02キャットタワーを買ってあげよう

2015/02/02カイト、初めての体験

2015/01/30可愛小憎たらしい

2015/01/29思ってたのと違うけど…

2015/01/20攻防の果て

2015/01/15眠れる獅子を呼び覚ました

2015/01/10インフルエンザにやられても

2015/01/08安心を得た模様

2015/01/07いとも簡単に私の生活は変えられてしまった

2015/01/06猫のお家問題

2015/01/06寝不足になる程好きらしい

2015/01/06猫がうちにやってきた

2014年

2014/12/18痛い目に遭った

2014/03/27緑の穴

2014/02/03【ネタバレ】トリック劇場版 ラストステージ 感想

2014/01/31プラグインを使わずに自動で抜粋記事から「続きを読む」にする方法!

2013年

2013/09/05タグで条件分岐

2013/02/15マカロンの席札立ての作り方(スイーツデコ)

2013/02/02ペットボトルのキャップで帽子作り

2012年

2012/10/04じんましん 再び

2012/09/12公開日時表示と最終更新日表示

2012/08/29マルチサイト:親サイトで子サイトのカスタムメニューをウィジェット表示

2012/07/31【WordPress】非ログインリダイレクト

2012/07/23WordPressの条件分岐

2011年

2011/11/11富士急ハイランドに行ってきました2

2011/11/08富士急ハイランドに行ってきました1

2011/03/01じんましん、その後

2010年

2010/09/30じんましん(機械性蕁麻疹)の事

コメントを残す