ゲームを分類するタグを追加する【WordPress】

作ったゲームをたくさん公開するようになるとユーザーが遊びたいゲームを探しやすいようにする必要が出てきます。

wordpressではカテゴリーとタグで分類することができます。ただ、ゲームの場合1ゲームにつき1つの分類とはしづらいと思うのでカテゴリーではなくタグを使った方が良いと思います。

カスタム投稿にタグ機能をつける

私はこんな感じに作ってます。

function create_taxonomies() {
    $labels = array(
        'name'          => 'タイプ', 
        'singular_name' => 'game',        
    );
    register_taxonomy('type', array('game'), //タグの名前、カスタム投稿のsingular_name
        array(
            'hierarchical'     =>  false,//階層構造にはしない
            'labels'            =>  $labels,
            'show_ui'           =>  true,
        )
    );
}
add_action( 'init', 'create_taxonomies', 1 );

「name」はダッシュボードのメニューに表示される名前です。

「singular_name」はカスタム投稿の名前を入れます。私のカスタム投稿の名前はgameになってます。

register_taxonomyの第一引数(私の例ではtype)がプログラムやURLに使われるタグの名前になります。

これでゲーム用のカスタム投稿にタグをつけることができます。

ちなみに階層構造の有無を指定する「hierarchical」をtrueにするとカテゴリーになります。タグとカテゴリーの違いはそれだけらしいです。

記事についてるタグを表示する

今見ている記事で使われているタグを表示しておくとユーザーがタグを使ってゲームを探しやすくなります。他のゲームも遊んでもらえるチャンスが増えるので表示しましょう。

function get_post_tag_list($post, $slug_name){//引数はpostクラスとタグのスラッグ名
    $custom_post_tag_terms = wp_get_object_terms($post->ID, $slug_name);
    if(!empty($custom_post_tag_terms)){
        if(!is_wp_error( $custom_post_tag_terms )){
            echo '<ul class="tag-list">';
            foreach($custom_post_tag_terms as $term){
                echo '<li><a href="'.get_term_link($term->slug, $slug_name).'">'.$term->name.'</a></li>';
            }
            echo '</ul>';
        }
    }
}

使うときはタグを表示したい場所で

<?php get_post_tag_list($post, "type"); ?>

と書けば記事で使われているタグの一覧が表示されます。

リストで表示されるようにしてあるのであとはCSSでデザインしてください。

コメントを残す

メールアドレスが公開されることはありません。

ゲームタグ一覧

おすすめゲーム

  • ゲーム「さめがめ」のサムネイル
    さめがめ
    同じ色で複数くっついているタイルをタッチして消すパズルゲーム。一度にたくさん消すと高得点!
  • ゲーム「フリック&チェイン」のサムネイル
    フリック&チェイン
    同色のブロックを4つ以上つなげると消えるパズルゲームです。ランキングはHARDのみ対応
  • ゲーム「コスモファイター」のサムネイル
    コスモファイター
    レトロ風の縦シューティングゲーム。敵が個性的に動き回わるところも懐かしさを感じます。
  • ゲーム「vs.蚊」のサムネイル
    vs.蚊
    部屋に蚊が侵入!その数10匹!何としても奴らを殲滅せねばならぬ!!一匹残らずぶっ潰せ!!
  • ゲーム「うえにいく」のサムネイル
    うえにいく
    障害物を避けながらただただ上を目指すゲーム。シンプルだけど集中力が必要です。