WordPressの特定のタグ(tag)を除外/削除する

WordPressの特定のタグ(tag)を除外/削除する

WordPressの記事に関連付けられたタグの一覧を表示してくれるthe_tag。

そのタグ一覧から特定のタグを除外/削除する場合はthe_tagでは難しそう。しかしget_the_tagsを使うのであれば可能なことが分かったのでメモ。

また、ITエンジニア特化型Q&Aサイトteratail(テラテイル)に複数の特定のタグを除外/削除したいとう以前のブログ記事を引用された記事がアップされていましたので、配列を使用して新たに複数のタグに対応させたコードにしています。

<?php
$exclude_tags = array("tag1", "tag2", "tag3"); // 除外するタグのスラッグの配列

$tags = get_the_tags($post->ID);
$separator = ', ';
$output = '';

if ($tags) {
    foreach ($tags as $tag) {
        if (!in_array($tag->slug, $exclude_tags)) { // 除外するタグのスラッグが含まれていない場合
            $output .= '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a>' . $separator;
        }
    }
    echo trim($output, $separator);
}
?>

一方、セレクトボックスにタグ一覧を表示させる場合、特定のタグを除外/削除するには下記のようなコードになります。

<?php
$excluded_tag = array('tag1', 'tag2', 'tag3'); // 除外するタグのスラッグの配列

$tags = get_tags();
$filtered_tags = array();

if ($tags) {
    foreach ($tags as $tag) {
        if (!in_array($tag->slug, $excluded_tag)) {
            $filtered_tags[] = $tag;
        }
    }
}

if (!empty($filtered_tags)) :
?>
<select onchange="document.location.href=this.options[this.selectedIndex].value;" class="custom-select form-control-sm">
    <?php foreach ($filtered_tags as $tag) : ?>
        <option value="<?php echo esc_url(get_tag_link($tag->term_id)); ?>"><?php echo esc_html($tag->name); ?></option>
    <?php endforeach; ?>
</select>
<?php endif; ?>

以上です。

AEDIは岡山県倉敷市のWeb制作会社・デザイン会社です

AEDIは岡山県倉敷市を拠点としてホームページ制作、WordPress構築、多言語サイト構築、SEO、UI/UXデザイン、ロゴ、チラシ、パンフレットやカタログ、ポスター等のグラフィックデザイン、モーションデザイン・モーショングラフィックス、キャラクターデザイン、ブランドデザイン・ブランディングのサービスをご提供しております。

単にホームページを制作したり、ロゴをデザインをするだけではなく、ブランドデザイン・ブランディングという観点から、お客様のサービスや商品の価値を引き出し、新しい価値を世の中にアピールしていくお手伝いすることが仕事です。

岡山県、倉敷市のお客様はもちろん、岡山県外のお客様もホームページ制作やデザインの制作をお考えの方は是非お気軽にご連絡ください。ご一緒におもしろいもの、素晴らしいものを作っていきましょう!

Related Service:

ホームページ制作

Back to Top