記事一覧を確認したいとき、Excelやスプレッドシートに転記したいときに便利なショートコードです。
// functions.php に追加
function display_post_titles_shortcode($atts) {
// ショートコードの属性を設定
$atts = shortcode_atts(
array(
'post_type' => 'post', // 投稿タイプ(デフォルト: post)
'number' => 10, // 表示する記事数(デフォルト: 10)
'orderby' => 'date', // 並び順の基準(デフォルト: 日付)
'order' => 'DESC', // 並び順(デフォルト: 降順)
),
$atts,
'post_titles'
);
// クエリを準備
$args = array(
'post_type' => $atts['post_type'],
'posts_per_page' => $atts['number'],
'orderby' => $atts['orderby'],
'order' => $atts['order'],
);
$query = new WP_Query($args);
// 結果の出力
if ($query->have_posts()) {
$output = '<ul class="post-titles-list">';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
$output .= '</ul>';
} else {
$output = '<p>記事が見つかりませんでした。</p>';
}
// クエリをリセット
wp_reset_postdata();
return $output;
}
add_shortcode('post_titles', 'display_post_titles_shortcode');
ショートコードの使い方
[post_titles post_type="post" number="5" orderby="title" order="ASC"]
ショートコードの属性を設定して記載します。デフォルトの検索条件で問題なければ[post_titles]のみの記載で問題ありません。
post_type: 投稿タイプを指定(例: post, page, custom_post_type)
number: 表示する記事数(デフォルト: 10)※全件取得は「-1」
orderby: 並び替え基準(例: date, title, rand)
order: 並び順(ASC または DESC)
当サイトの記事一覧は↓のように表示されます。