サポート » 使い方全般 » 単一記事のタグにそれぞれクラス指定をしたい

  • 解決済 cont96

    (@cont96)


    テーマTwenty-tenの各個別記事(single.php)で表示される画面で、記事の終わりに投稿タグが出力されます。

    その各投稿タグに対して
    それぞれ別個にクラス指定を行いたいのですがどのようにすれば宜しいでしょうか?
    この件について知見をお持ちの方教えて頂けますでしょうか。

    投稿タグを利用して、記事にアイコンを付けたいと思ってます。
    投稿タグのそれぞれのclassを利用してcssでアイコンにしてしまいたいというのが目的です。

    投稿者がhtmlを触らずに記事にアイコンをつけることができたらと思います。
    投稿タグは5つに限定して、そこから選択してもらうという形です。

    前述以外の方法があればそちらでご指南いただければと思います。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • 5個固定ということであれば、
    functions.php内
    twentyten_posted_in()の
    $tag_list = get_the_tag_list( '', ', ' );
    でタグを取得していますので、パースしてif文でクラスをつけてしまうのはどうでしょう?

    トピック投稿者 cont96

    (@cont96)

    ありがとうございます。

    当方、プログラムに関しては素人で。。
    具体的にどうif分岐したらいいのか分かりません。
    すみません。よろしくお願い致します。

    やっつけですが

    function twentyten_posted_in() {
    	// Retrieves tag list of current post, separated by commas.
    	$tag_list = get_the_tag_list( '', ', ' );
    	$temp_tag_array = explode(', ',$tag_list);
    	$buf_tag_list = array();
    	foreach($temp_tag_array as $temp_tag){
    		if(strpos($temp_tag,"タグ1")>0){
    			$buf_tag_list[] = '<div id="タグ1">'.$temp_tag.'</div>';
    		}elseif(strpos($temp_tag,"タグ2")>0){
    			$buf_tag_list[] = '<div id="タグ2">'.$temp_tag.'</div>';
    		}elseif(strpos($temp_tag,"タグ3")>0){
    			$buf_tag_list[] = '<div id="タグ3">'.$temp_tag.'</div>';
    		}elseif(strpos($temp_tag,"タグ4")>0){
    			$buf_tag_list[] = '<div id="タグ4">'.$temp_tag.'</div>';
    		}elseif(strpos($temp_tag,"タグ5")>0){
    			$buf_tag_list[] = '<div id="タグ5">'.$temp_tag.'</div>';
    		}else{
    			$buf_tag_list[] .= $temp_tag;
    		}
    	}
    	$tag_list = implode(', ',$buf_tag_list);
    	if ( $tag_list ) {
    		$posted_in = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'twentyten' );
    	} elseif ( is_object_in_taxonomy( get_post_type(), 'category' ) ) {
    		$posted_in = __( 'This entry was posted in %1$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'twentyten' );
    	} else {
    		$posted_in = __( 'Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'twentyten' );
    	}
    	// Prints the string, replacing the placeholders.
    	printf(
    		$posted_in,
    		get_the_category_list( ', ' ),
    		$tag_list,
    		get_permalink(),
    		the_title_attribute( 'echo=0' )
    	);
    }
    トピック投稿者 cont96

    (@cont96)

    ありがとうございます!
    functions.php内の
    function twentyten_posted_in()以下を書き換えたのですが

    反映されないみたいです。。
    重ね重ねすみません。
    見てみたのですが分からず。

    ご助言くださればと思います。

    タグ1~タグ5は実際のタグに書き換えてありますか?
    実際のタグになっていれば該当タグがdivで囲まれるはずです。

    あと、細かい部分間違っていましたので修正。

    $buf_tag_list[] .= $temp_tag;


    $buf_tag_list[] = $temp_tag;

    トピック投稿者 cont96

    (@cont96)

    ありがとうございました!
    できました。
    イメージしたものが実現できそうです。

    親切にいろいろとありがとうございます。

    トピック投稿者 cont96

    (@cont96)

    タグの間に「,」が入ってしまいます。

    $tag_list = get_the_tag_list( ”, ‘, ‘ );を
    $tag_list = get_the_tag_list( ”, ” );にしたところ

    カンマは消えたのですが。
    吐き出されたソース上では
    <div id=”タグ1″> タグ1 タグ2 タグ3 タグ4 タグ5 </div>
    のようにdivがひとつになってしまいました。。

    色々試してはいるのですが、うまくいかず。
    すみません。よろしくお願いします。

    $tag_list = implode(‘, ‘,$buf_tag_list);
    の’, ‘を任意の区切り文字に変更してください。

    こちら、もし解決しているようでしたら、
    お手数ですが解決フラグをつけていただけないでしょうか?

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「単一記事のタグにそれぞれクラス指定をしたい」には新たに返信することはできません。