WordPressのタグについての質問です。
タグで
名前 | スラッグ | パーマリング
デザイン | design | /tag/design
ロゴ | logo | /tag/logo
バナー | banner | /tag/banner
と設定したときに、the_tags()で出力される3つのリンクのうち、1つだけ任意のリンク先に変更することは可能でしょうか?
Tags:<a href="/tag/design">デザイン</a> , <a href="/tag/logo">ロゴ</a> , <a href="/?p123">バナー</a>
みんなの回答 2 件
やり方は色々あるけど
the_tags();をget_the_tagsに置き換えて、
<?php
$posttags = get_the_tags();
if ( $posttags ) {
foreach ( $posttags as $tag ) {
if($tag->slug == ’banner’){
echo ’/?123’;
}else{
echo get_tag_link( $tag->term_id );
}
}
}
?>
見たいな感じでやる。
適当に書いてるからキチンと動くように書き直してくれ
WPのリファレンスはここを見ると幸せになれる。
ttp://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_the_tags
もっと詳しくなりたいなら
/4.2.2/src/wp-includes/category-template.phpファイルの
① 1363行目
$term_links = apply_filters( "term_links-$taxonomy", $links );
や
② 1196行目
apply_filters( ’get_the_tags’, get_the_terms( $id, ’post_tag’ ) );
のフィルターフックを使って、add_filterして、正規表現で置き換えたりする。
category-template.php in tags/4.2.2/src/wp-includes – WordPr...
https://core.trac.wordpress.org/browser/tags/4.2.2/src/wp-includes/category-template.phpfunction my_tag_link($link,$id) {
if($id == 3){
return ’/?p123’;
}
return $link;
}
add_filter(’tag_link’, ’my_tag_link’, 10, 2);
これで何とか行けたものの、slugで一致が出来ずです・・・
関連するトピックス