• 解決済 BB7

    (@bb7)


    お世話になります
    今コメント欄のテーマをカスタマイズしております。

    コメント投稿者の方がブログやHPのアドレスを持っているときにリンクを表示するタグ

    <?php comment_author_url(); ?>
    <?php comment_author_url_link(); ?>

    を使用したいのですが使い方がよくわかりません
    (WordPress Codex 日本語版は読んだのですが・・・。)

    やりたいのは投稿者の名前にそのかたのサイトのリンクを貼るという単純なモノなのです。

    <a href="<?php comment_author_url( ); ?>"><?php comment_author_link() ?></a>

    としてみたのですがURLを入れていない人の名前にもリンクが付いてしまいます。

    これをURLを入力した人は 「名前にリンクを付け」
    未記入の人にはリンクを付けず 「名前のみ表示」

    というように変更したと思っています。
    お知恵をおかし下さい。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは、

    リンクを形成する関数を覗いてみると、hrefアトリビュートが、ブランクになるように出来ているみたいでした。

    get_comment_author_url_linkが、作り出すハイパーリンクタグに、URLが含まれるかどうかチェックして、正しいURLなら、リンクとして書き出し、
    変だったら、ユーザ名だけを表示するというフィルタ関数を作ってみました。

    よろしければ、ご希望通りの動作になるかどうか、確認してみてください

    以下の、コードをテーマディレクトリの、functions.phpに保存してください。

    add_filter("get_comment_author_url_link","is_goodlink");
    
    function is_goodlink($hyper_link_set){
    
    	if(preg_match("|(https?:\/\/)([-_.!˜*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)|siu",$hyper_link_set,$regs)){
    
    		$url = esc_url($regs[1]);
    		$hyper_link_set = str_replace($regs[1],$url,$hyper_link_set);
    
    		return $hyper_link_set;
    	}
    		return sanitize_user(comment_author());
    }

    テンプレート(例:twentyten_comment()とかに、)

    <?php comment_author_url_link();?>

    トピック投稿者 BB7

    (@bb7)

    nobita さんありがとうございます。

    <?php comment_author_url_link();?>

    で上手く表示できました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「コメント投稿者のURLリンク」には新たに返信することはできません。