WordPressのタグ操作方法をまとめました。
get tags:すべてのタグを取得する
<?php $tags = get_tags() ?>
get the tags :記事内のタグを取得する
<?php $tags = get_the_tags(); ?>
get_term_by:タグ名からポストタグ(Term)を取得する
<?php $tag = get_term_by('name', $tag_name, 'post_tag'); ?>
get tag link:タグのリンクを取得する
<a href="<?php echo get_tag_link($tag_id); ?>">タグ名</a>
get tags関数と組み合わせる場合
<?php
$tags = get_tags();
$html = '<div class="post_tags">';
foreach ( $tags as $tag ) {
$tag_link = get_tag_link( $tag->term_id );
$html .= "<a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>";
$html .= "{$tag->name}</a>";
}
$html .= '</div>';
echo $html;
?>
wp set post tags:投稿にタグをつける
$appendは初期値がfalseなので、明示的にTrueを指定しなければ、最後の関数で渡した$tagsに更新します。foreachなどのループで使う場合は$appendにTrueを渡すようにしましょう。
<?php wp_set_post_tags( $post_ID, $tags, $append ) ?>
【応用】すべてのタグの中から本文に含まれているタグを自動的に保存する
タグ名が含まれるかと本文を小文字に変換した後にタグスラッグが含まれるかを判定してタグの追加をしています。
$content = get_post($post_id)->post_content;
$tags = get_tags();
foreach ($tags as $tag){
if (strpos($content,$tag->name) !== false || strpos(mb_strtolower($content, 'UTF-8'),$tag->slug) !== false) {
wp_set_post_tags($post_id, $tag->name, true);
}
}