サポート » プラグイン » my-hacks.phpについて

  • 解決済 masarin

    (@masarin)


    いつもお世話になります。
    クエリ情報を送るときに、「?」や「&」を用いますが
    Another HTML-lintというHTMLスペルチェックサイトで「&」は「&」
    と記述してくださいと指摘されてしまいました。

    そこで、「rewrite.php」のなかにある「function generate_rewrite_rules($permalink_structure, $ep_mask = EP_NONE, $paged = true, $feed = true, $forcomments = false, $walk_dirs = true, $endpoints = true) {



    }
    の箇所からクエリ情報の「&」の箇所だけ「&」に変更した内容を
    <?php と ?>で囲み
    「my-hacks.php」に保存して、PC用のスキンが入っている
    「header.php」「index.php」とおなじ階層にいれてみました。

    けれど、なぜか「my-hacks.php」が反映されません。(クエリ情報の「&」は「&」のままでした)
    設定箇所で「レガシーなmy-hacks.phpを使用する」にはチェックをいれています。

    なぜ反映されないのかご教授いただければ幸いです。

    よろしくお願いいたします。

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

    (@lilyfan)

    クエリ情報を送るときに、「?」や「&」を用いますが
    Another HTML-lintというHTMLスペルチェックサイトで「&」は「&amp;」
    と記述してくださいと指摘されてしまいました。

    はい、XHTML において、a 要素や img 要素などに記載する URI では、& は & と書く必要があります。

    そこで、「rewrite.php」のなかにある「function generate_rewrite_rules($permalink_structure, $ep_mask = EP_NONE, $paged = true, $feed = true, $forcomments = false, $walk_dirs = true, $endpoints = true) {

    たぶん、こんなことをする必要はありません。WordPress のコア関数は、おそらくは、適切に URL エスケープしているはずです (ひょっとすると、不適切な可能性も少なからずありますが)。

    HTML-lint で怒られた箇所がどうなっているかは知りませんが、使用しているテーマに URI を直接記入しているなら、そこを直してみてください。もしくは、URI 出力部分に attribute_escape() 関数を通すようにしてみてください。

    lilyfanさま
    いつもお返事ありがとうございます。

    HTML-lint で怒られた箇所がどうなっているかは知りませんが、使用しているテーマに URI を直接記入しているなら、そこを直してみてください。

    こちらに関してですが
    Another HTML-lintではサイドバーの

    # <div id="recent-comments" class="widget_recent_comments widget"> <h3 class="widget-header">最近のコメント</h3> <ul id="recentcomments"><li class="recentcomments"><a href="http://example.com/blog/?p =7&cpage=1#comment-8">テスト1</a> に 匿名 より<li class="recentcomments"><a href="http://example.com.com/blog/?p =7&cpage=1#comment-7">テスト2</a> に 匿名 より<li class="recentcomments"><a href="http://example.com/blog/?p =1&cpage=1#comment-6">保護中: Hello world!</a> に 匿名より
    # </div>

    という箇所に対して「&cpage は不明な実体参照です。」と怒られました。

    この箇所をくわしく調べてみると
    wp-include\widgets.phpのなかにある

    <?php echo $before_widget; ?>
    <?php echo $before_title . $title . $after_title; ?>
    <ul id="recentcomments"><?php
    if ( $comments ) : foreach ( (array) $comments as $comment) :
    echo '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a>comment_ID) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '';
    endforeach; endif;?>
    <?php echo $after_widget; ?>

    がおそらく対応していると思うのですが
    恥ずかしながら、どのようにして「attribute_escape() 関数」を
    組み込んだらよいのかがわかりません。

    ご教授いただければと思っております。
    どうかよろしくお願いいたします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    という箇所に対して「&cpage は不明な実体参照です。」と怒られました。

    なるほど。これは WordPress コアの不具合っぽいですね。&cpage となるべきですから。

    恥ずかしながら、どのようにして「attribute_escape() 関数」を
    組み込んだらよいのかがわかりません。

    引用がミスっていてこれでは組み込み箇所が消えていますよ!! コードの引用には b-quote じゃなくてバッククォートを使ってみてください。キーボードによりますが、数字の1の隣にあるはずです。

    echo  '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. attribute_escape(get_comment_link($comment->comment_ID)) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';

    とすればよいはずです。これは trac に報告する必要ありかな??

    lilyfanさま
    お返事が遅くなり、申し訳ございません。
    lilyfanさまの言われたとおりに記載したところ、ぶじ解決いたしました。

    引用がミスっていてこれでは組み込み箇所が消えていますよ!! コードの引用には b-quote じゃなくてバッククォートを使ってみてください。キーボードによりますが、数字の1の隣にあるはずです。

    たいへん申し訳ございませんでした。こんどからは、コードの引用にはバッククォート(`)を使いたいと思います。

    ほんとうにありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「my-hacks.phpについて」には新たに返信することはできません。