サポート » プラグイン » My Link Orderでタグにclassを追加したい

  • 解決済 shokun0803

    (@shokun0803)


    My Link Order( http://wordpress.org/extend/plugins/my-link-order/ )でリンクの順番を入れ替えているのですが、表示しているリンクの画像にclassを追加したいと思っています。

    考えうる方法はページの表示そのものをフックしてimgタグにclassを追加する方法ですが、My Link Orderのウィジェットをフックして書き換えるような方法がないか探しています。
    プラグインのコードを追っているのですが、いまいちリンクの表示(生成)部分がよくわかっていないのと、プラグインそのものに手を入れるのはどうかな?と思いまして、何かよい方法があればご教授お願いします。

    【参考】
    現在のMy Link Orderウィジェット生成後コード(一部)

    <li id="linkcat-2" class="widget-container widget_mylinkorder"><h3 class="widget-title">ブログロール</h3>
    <ul class='xoxo blogroll'>
    <li><a href="/calendar/index.html" title="カレンダー"><img src="http://www.example.jp/img/main_campus.gif"  alt="カレンダー"  title="カレンダー" /></a></li>
    <li><a href="/news/index.html" title="ニュース&トピックス"><img src="http://www.example.jp/img/main_news.gif"  alt="ニュース&トピックス"  title="ニュース&トピックス" /></a></li>

    このimgタグにclassを追加したいと考えています。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    shokun0803さん、こんちゃ。

    内部的にはwp_list_bookmarks使っているようなので(284行目参照)、wp_list_bookmarksにフックして、str_replaceなどで置換させる感じでしょうか。画像毎に違うclassを適用させるとなると、ソースを行毎にパースして、マッチする毎にカウントアップさせていくなどの方法になるでしょうか。

    トピック投稿者 shokun0803

    (@shokun0803)

    jim912さん、いつもありがとうございますm(__)m

    結果、できました!

    管理画面からダウンロードしたプラグインのソースと、直接ダウンロードしたソースが違っていて(空行などがあったりなかったり…)、該当箇所にコードがなくてちょっと焦ったりしてましたが(笑)、うまくフックすることができました。

    以下functions.phpに追記した部分です。

    function my_list_bookmarks( $bookmarks_string ) {
      return str_replace( '<img src', '<img class="rollover" src', $bookmarks_string);
    }
    
    add_filter( 'wp_list_bookmarks', 'my_list_bookmarks' );

    とても助かりました、また福岡でお会いしましょう;)

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「My Link Orderでタグにclassを追加したい」には新たに返信することはできません。