wordpressでカテゴリーが大量にあり、そのそれぞれからあちこちに、最新1件を表示するというお仕事がありまして・・・・何度もループを書くのは面倒な上、コードが見づらくなるので、ショートコード化しました。
下記の記事を参考にしてベースを作成し、レイアウト違いのショートコードがいくつか欲しかったので、出力側はget_template_partで読み込ませる仕様に変更しました。

呼び出すショートコードは、
[getCategoryArticle num=”1″ cat=”topic1″ layout=”normal”]

num 表示する記事数
cat カテゴリースラッグ
layout 呼び出すテンプレート名、loop-●●の●●の部分

あとは、loop-●●.phpをレイアウトの種類分作っておけばOKです。だいぶコードのシェイプアップになりました・・

https://incloop.com/wordpress%E3%81%AE%E5%9B%BA%E5%AE%9A%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA/