サポート » プラグイン » ktai styleでコメントの昇順・降順リンクについて

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

    (@lilyfan)

    おそらく、
    http://my-home-sample-hogehogehoge.com/wordpress/?P=57&view=co_list&mode=new(old)とできたら降順・昇順がうまくいくような気はするのですが、どのような設定をするといいのかわからず、質問させていただきました。

    WordPress の API 関数 add_query_args() を使えばよいです。具体的には以下のような感じにします。クエリー文字列の mode, new, old はちょっといまいちなので、order, desc, asc としてみました。

    echo '<a href="' .
    attribute_escape(add_query_args('order', 'desc', $_SERVER['REQUEST_URI'])) .
    '">降順</a> | <a href="' .
    attribute_escape(add_query_args('order', 'asc', $_SERVER['REQUEST_URI'])) .
    '">昇順</a>';

    余談ですが、ドメイン名の例示として「my-home-sample-hogehogehoge.com」というのをひねり出されていますが、こういう場合には example.com, example.jp などのドメインが用意されているので、こちらを使うのが適切です。2008年12月22日現在、my-home-sample-hogehogehoge.com は空いていますが、いつ誰かに取得されるか分かりません。もし、マルウェアを仕込んだサイトを構築されたりすると、まずい状況となります。そういうことを避けるために、例示用ドメイン名を使うのが適切です。

    トピック投稿者 masarin

    (@masarin)

    lilyfanさま
    ご回答ありがとうございます。

    余談ですが、ドメイン名の例示として「my-home-sample-hogehogehoge.com」というのをひねり出されていますが、こういう場合には example.com, example.jp などのドメインが用意されているので、こちらを使うのが適切です。2008年12月22日現在、my-home-sample-hogehogehoge.com は空いていますが、いつ誰かに取得されるか分かりません。もし、マルウェアを仕込んだサイトを構築されたりすると、まずい状況となります。そういうことを避けるために、例示用ドメイン名を使うのが適切です。

    こちらは、以後じゅうぶんに気をつけたいと思います。ご指摘ありがとうございます。

    ご指摘いただいたとおり

    echo ‘<a href=”‘ .
    attribute_escape(add_query_args(‘order’, ‘desc’, $_SERVER[‘REQUEST_URI’])) .
    ‘”>降順 | <a href=”‘ .
    attribute_escape(add_query_args(‘order’, ‘asc’, $_SERVER[‘REQUEST_URI’])) .
    ‘”>昇順’;

    と入力し、

    <?php
    $aa = array_reverse ($sep_comments[$type]);
    if ($_GET[‘order’] == ‘desc’) {
    $aa = array_reverse ($sep_comments[$type]);
    }elseif ($_GET[‘mode’] == ‘asc’) {
    $aa = $sep_comments[$type];
    }
    ?>

    を入力してみました。
    すると

    Fatal error: Call to undefined function add_query_args() in /var/www/vhosts/example.com/subdomains/example/httpdocs/wordpress/wp-content/plugins/ktai_style/themes/default/comments.php online 4

    と表示されてしまいました。

    <?php
    $aa = array_reverse ($sep_comments[$type]);
    if ($_GET[‘order’] == ‘desc’) {
    $aa = array_reverse ($sep_comments[$type]);
    }elseif ($_GET[‘mode’] == ‘asc’) {
    $aa = $sep_comments[$type];
    }
    ?>

    上記に関しては消してみたのですが改善されませんでした。

    ご教授のほどよろしくお願いいたします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    Fatal error: Call to undefined function add_query_args()

    すみません。add_query_arg() が正解でした (s がよけい)。wp-includes/functions.php で定義されているものです。

    「WordPress の API である」と書いているので、関数が存在しないわけがないため、エラーが出るということはスペルミスだと推測する、ぐらいのスキルを身につけていただけると助かります 😉 😉 (回答者もときどきミスをするので)

    $aa = array_reverse ($sep_comments[$type]);
    if ($_GET['order'] == 'desc') {
      $aa = array_reverse ($sep_comments[$type]);
    }  elseif ($_GET['mode'] == 'asc') {
      $aa = $sep_comments[$type];
    }

    1行目の array_reverse() の意義がよく分かりません。デフォルトとして降順 (最新順) にしたいということでしょうか? あと、2つめの if 文は ‘mode’ のままですが、いいのでしょうか?

    トピック投稿者 masarin

    (@masarin)

    lilyfanさま
    このたびはほんとうにありがとうございました。
    お陰さまで、無事に降順(新着順)・昇順(古い順)に切り替えることができました。
    このご恩は一生忘れません。

    「WordPress の API である」と書いているので、関数が存在しないわけがないため、エラーが出るということはスペルミスだと推測する、ぐらいのスキルを身につけていただけると助かります 😉 😉 (回答者もときどきミスをするので)

    たいへんお恥ずかしいかぎりです。
    時間のあるときは、日々PHPを勉強したいと思っております。

    2つめの if 文は ‘mode’ のままですが、いいのでしょうか?

    すみませんでした。わたしのミスです。
    comments.phpには、「mode」ではなく「order」として処理しました。

    1行目の array_reverse() の意義がよく分かりません。デフォルトとして降順 (最新順) にしたいということでしょうか?

    はい。デフォルトでは常に降順(最新順)としてコメントを表示し
    ユーザーが昇順(古い順)のリンクをクリックすると昇順に切り替わるようにしたいと
    考えておりました。

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

    モデレーター IKEDA Yuriko

    (@lilyfan)

    所望の動作が実現できたようでなによりです。

    時間のあるときは、日々PHPを勉強したいと思っております。

    今後のスキルアップを期待しています。本来は、回答者がミスをしないことが望ましいわけで、今回のように所々ミスがあったのは申し訳ない限りです。でも、質問者も一定のスキルがあれば、ミスを自身で見つけることができて、結果として解決がスムーズになりますので、お互いにとって楽です。

    はい。デフォルトでは常に降順(最新順)としてコメントを表示し
    ユーザーが昇順(古い順)のリンクをクリックすると昇順に切り替わるようにしたいと
    考えておりました。

    だとすると、if 文の条件をうまく調整すれば、array_reverse() は1つで済みそうです。同じような命令が複数あると、今後の改造でバグの原因となるので、できるだけすっきりしたコードにしておいた方がよいです。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ちなみに、現在ベータ版として配布している Ktai Style 1.60-beta3 では、附属の redportal テーマで、コメントの昇順・降順を切り替える機能を付けました。以前から切り替えメニューは用意していたのですが、実際には動作しないものでした。今回のフォーラムの回答をもとに実装したものです。

    実際に実装するきっかけを与えて頂きました masarin さんには感謝いたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「ktai styleでコメントの昇順・降順リンクについて」には新たに返信することはできません。