web-dev-qa-db-ja.com

カスタム投稿タイプをショートコードで表示

WordPressテーマ用のカスタム投稿タイプと、カスタム投稿タイプが表示されるページを作成しました。しかし、カスタム投稿タイプの投稿を表示するショートコードの作り方を知っている人はいますか?

3
jorenwouters

基本的にあなたの質問は、カスタム投稿タイプの投稿をショートコードで問い合わせる方法です。あなたはWordPressのWP_Queryセクションを調べてみるべきです: https://codex.wordpress.org/Class_Reference/WP_Query

私のサンプルコードでは、 'my-custom-post-type'タイプの最新の公開された投稿のタイトルを示すショートコードを作成します。

<?php
    add_shortcode( 'shortcodename', 'display_custom_post_type' );

    function display_custom_post_type(){
        $args = array(
            'post_type' => 'my-custom-post-type',
            'post_status' => 'publish'
        );

        $string = '';
        $query = new WP_Query( $args );
        if( $query->have_posts() ){
            $string .= '<ul>';
            while( $query->have_posts() ){
                $query->the_post();
                $string .= '<li>' . get_the_title() . '</li>';
            }
            $string .= '</ul>';
        }
        wp_reset_postdata();
        return $string;
    }
?>

ショートコードはループ内で実行されるので、クエリを終了した後はwp_reset_postdata()を使用してください。そうすればメインループは期待通りに動作します。この機能の詳細については、こちらをご覧ください。 https://codex.wordpress.org/Function_Reference/wp_reset_postdata

私は願っています、これはあなたに逆襲を与えます。

3
websupporter