[WordPress] カスタム投稿のidとスラッグ、タイトルを一覧表示させたい
CSVインポートで既存記事をまとめて更新したいときなど、カスタム投稿のidやスラッグなどの情報を一覧表示させたい場合があります。
専用のプラグインもありますが、頻繁に行う作業ではない場合、わざわざプラグインをインストールするのではなく、簡易的なショートコードで代用する方法があります。
functions.php
function sc_post_data($atts) {
    $atts = shortcode_atts(array(
        'type' => 'post'
    ), $atts);
    $html = '';
    $args = array(
        'post_type' => $atts['type'],
        'posts_per_page' => -1
    );
    $the_query = new WP_Query($args);
    if($the_query->have_posts()) {
        $html .= '<table>';
        $html .= '<tr>';
        $html .= '<th>id</th>';
        $html .= '<th>slug</th>';
        $html .= '<th>title</th>';
        $html .= '</tr>';
        while($the_query->have_posts()) {
            $the_query->the_post();
            global $post;
            $html .= '<tr>';
            $html .= '<td>'. get_the_ID() .'</td>';
            $html .= '<td>'. $post->post_name .'</td>';
            $html .= '<td>'. get_the_title() .'</td>';
            $html .= '</tr>';
        }
        $html .= '</table>';
    }
    wp_reset_postdata();
    ob_start();
    echo $html;
    $contents = ob_get_contents();
    ob_end_clean();
    
    return $contents;
}
add_shortcode('post_data', 'sc_post_data');
ショートコード
[post_data type="product"]
実装したコードは、上記のショートコードで呼び出すことができます。
引数の「type」は表示したいカスタム投稿のスラッグを指定してください。
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。