WordPress カスタム投稿データをショートコードで表示する


 

少しややこしいので、説明します。

ざっくり言うと、まずは以下です。

WordPressのプラグイン「Custom Post Type UI」を使用して、カスタム投稿タイプを作成し、それにタクソノミーを設定して、記事ページでショートコードを使ってタクソノミーを指定してデータを表示する方法は以下の通りです。

  1. Custom Post Type UIをインストールし、カスタム投稿タイプを作成する。
  2. Custom Post Type UIのメニューから「タクソノミー」をクリックし、新しいタクソノミーを追加する。
  3. カスタム投稿タイプの投稿ページにアクセスし、新しいタクソノミーを選択して保存する。
  4. 記事ページにショートコードを挿入する。
  5. ショートコードで表示される関数をfunction.phpに書く

    1については、まあいいですよね。今回は、「item」という名前でカスタム投稿タイプを作ったとします。
    2について、タクソノミーの種類に名前をつける必要があります。

    このように タクソノミースラッグというところに、名前をつけます。これ後から使います。

    3のタクソノミー自体は、好きな文字列を入れてください。

    4のショートコードは、5の関数を呼び出せるものになります。
    5の関数を書いておきます。


    
    //タクソノミーで表示
    function show_service_by_tag($atts) {
        $atts = shortcode_atts(array(
            'tag' => '',
        ), $atts);
        $tag = $atts['tag'];
    
        // カスタム投稿タイプが「item」とする taxonobyの名前が「categories」になります。
        $query_args = array(
            'post_type' => 'item',
            'tax_query' => array(
                array(
                    'taxonomy' => 'categories',
                    'field'    => 'slug',
                    'terms'    => $tag,
                ),
            ),
        );
    
        $services = new WP_Query($query_args);
    
        $output = '';
        if ($services->have_posts()) {
            while ($services->have_posts()) {
                $services->the_post();
    
          //ここにデータを展開して、$outputに入力していきます。
            }
            wp_reset_postdata();
        } else {
            $output = '該当するデータがありませんでした。'.$tag;
        }
    
        return $output;
    }
    add_shortcode('service_by_tag', 'show_service_by_tag');

    これで表示されるのですが、
    「記事ページにカテゴリーをつけて、カテゴリーを指定すると、該当する記事が表示される」というのと、仕組み的はまったく同じです。

    WEBプログム、WEBデザインなどの制作については、以下を御覧ください。

    WEBプログム、WEBデザインなどの制作