フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全32件中)
  • トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    また、返信が遅くなって本当に申し訳ありませんでした。

    gqevu6bsizさんの記述の後も、いろいろと調べてみました。

    まず、search.phpについてですが、
    gqevu6bsizさんが教えてくださいましたコードで無事出来ました。
    いつもいつも、お世話になっています。
    本当にありがとうございます。

    また、pre_get_postsについてなのですが、
    gqevu6bsizさんから返信をくださった後も、
    調べたのですが、推奨と非推奨の話が多く、
    結局自分で理解できませんでした。
    そのため、gqevu6bsizさんがおっしゃるように、
    pre_get_postsについて
    別のトピックをたてることにします。

    ただ、私が理解できるようにしたいので、
    今までgqevu6bsizさんが教えて下さったソートのコードを
    貼り付けようと思います。

    もし、お時間があるようでしたら、
    またお返事をいただけると嬉しいです。

    勝手で申し訳ないのですが、トピックの目的は達成できたので、
    こちらのトピックは一度解決済みにさせてください。
    ありがとうございました。

    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    毎回丁寧なご回答ありがとうございます。

    ここ数週間自力でいろいろとがんばったのですが、
    結局ソートに関してわからないことが出てきてしまった
    ということになってしまいました。

    ご返信が遅くなって大変申し訳ないと同時に、
    もし時間があるようでしたら、
    また教えていただけますと大変助かります。

    カスタムタクソノミーのソートについては、
    gqevu6bsizさんが記載してくださいました
    コードを組み込むことで、出来るようになりました。
    ありがとうございます。

    ただ、タクソノミーでもソートできるコードについて、
    検索結果のソートが出来ませんでした。
    コードを記載するので、間違いなどを教えていただけませんでしょうか?

    <?php $uri = home_url( '/' ); ?>
       <?php if( is_category() or is_tag() or is_tax() ) : ?>
          <?php $term = get_queried_object(); ?>
          <?php if ( $term ) : ?>
            <?php $uri = get_term_link( $term , $term->taxonomy ); ?>
          <?php endif; ?>
        <?php endif; ?>
    
        <div class="sort">
        <select name="original-sort-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'date' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'date' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>日付の新しい順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'date' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'date' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>日付の古い順</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'title' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'title' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>タイトル順(あ~わ・A~Z)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'title' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'title' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>タイトル順(わ~あ・Z~A)</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_average' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_average' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価の高い順(平均)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_average' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_average' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価の低い順(平均)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_score' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_score' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価の高い順(総合)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_score' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_score' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価の低い順(総合)</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_users' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_users' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_users' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_users' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価数の少ない順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'comment_count' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'comment_count' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>コメント数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'comment_count' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'comment_count' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>コメント数の少ない順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'views' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'views' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>閲覧数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'views' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'views' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>閲覧数の少ない順</option>
    
        </select>
            </div>   
    
        <?php
        // 何の指定もないときのデフォルトのソート順
    
          $paged = get_query_var( 'paged' );
      if( empty( $paged ) ) {
        $paged = 0;
      }
        $args = array( 'posts_per_page' => get_option( 'posts_per_page' ) , 'orderby' => 'date' , 'order' => 'DESC' , 'paged' => $paged );
    
        if( is_category() ) {
          $args["cat"] = get_query_var( "cat" );
        } elseif( is_tag() ) {
          $args["tag"] = get_query_var( "tag" );
        }
          $taxonomy = get_query_var( "taxonomy" );
        if( !empty( $taxonomy ) ) {
          $args[$taxonomy] = get_query_var( "term" );
        }
        $args["s"] = get_query_var( "s" );
    
        if( !empty( $_GET["meta_key"] ) ) {
          $args["meta_key"] = strip_tags( $_GET["meta_key"] );
          $args["orderby"] = 'meta_value_num';
          } elseif( !empty( $_GET["orderby"] ) ) {
          $args["orderby"] = strip_tags( $_GET["orderby"] );
          unset( $args["meta_key"] );
    
        }
    
        if( !empty( $_GET["order"] ) ) {
          $args["order"] = strip_tags( $_GET["order"] );
        }
        ?>
    
        <?php query_posts( $args ); ?>

    また、
    query_postsではなくpre_get_postsフィルターを用い、is_main_queryでチェックしてメインクエリーを変更することが強く推奨されています。
    ということですが、
    自分なりに調べてもどうするのがよいのか分かりませんでした。
    今回のソートのコードに対しても、どのように変更していいのか分からず困惑しております。

    一方的で返信も遅くなってしまい本当に申し訳ないのですが、
    お時間があるようでしたら、
    教えていただけますと幸いです。

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

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    このトピックで続けてよいのかわからなかったので、
    新しくトピックをたてました。

    もしよかったら、また力をお貸しいただきたいです・・

    今まで何度も教えていただいたソートについてなのですが、
    今回、本来あるカテゴリーに加えてcustom post type uiで作成したタクソノミーを
    使用することで、カテゴリーを2つ用意するようにしました。

    記事を検索したときに、カテゴリーと新しいタクソノミーの両方で
    絞り込み検索が出来るようにはなんとかなったのですが、

    タクソノミーだけで絞り込んだ場合と
    カテゴリーとタクソノミーの両方で絞り込んだ場合の検索結果で
    ソートが出来ず、トップページに戻ってしまいます。

    今までの質問の答えも見直しましたが、
    どうしても分かりませんでした。

    質問の狙いがわかりづらいかもしれないですが、
    よろしければご回答いただけませんでしょうか
    本当に失礼かと思いますが、
    すいませんがお願いします。

    トピック投稿者 gakusei

    (@gakusei)

    追加的になってしまい、失礼かと思いますが、
    ダッシュボードも管理者以外はURLなどからでも
    閲覧出来ないような状態にしたいと思っています。

    結果的に、現在
    「ダッシュボード」と「ツール」も
    管理者権限以外の人が使用できない状態を目指しています。

    何か方法をご存知の方がいらっしゃいましたら、
    助けていただきたいです。

    トピック投稿者 gakusei

    (@gakusei)

    ShinichiNさん

    ご返信が遅くなってしまい、申し訳ありませんでした。

    メディアについては、upload_filesで
    管理者以外は入れなくなりました。
    ありがとうございます。

    ShinichiNさんは、upload_filesをどうやって見つけましたか?
    出来れば、ダッシュボードとツールも同じ仕様にしたいのですが・・・

    add_actionのほうについては、function.nameのほうが
    いまいち見つけ方を理解できていなくて、
    うまく活用できていない、という感じです・・・
    すいません

    トピック投稿者 gakusei

    (@gakusei)

    ShinichiNさん

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

    読んでみたのですが、remove_capに何を入れると
    メディアとツールの権限をなくすことが出来るのか
    いまいち理解できませんでした。

    remove_capなどに入れるものを探すために
    どうするのがよいのでしょうか?

    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    返信が遅くなってしまい、大変申し訳ありませんでした。

    gqevu6bsizの指摘していただいた通りの質問を持っています。

    gqevu6bsizさんがおっしゃってくださいましたように、
    別でトピックをたてたいと思います。

    ありがとうございました!

    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    お久しぶりです!
    日が空いてしまい、本当にごめんなさい
    今回もサポートしていただいてありがとうございます

    gqevu6bsizさんが書いてくださいましたコードで無事出来ました。
    とても助かりました。

    ちなみになのですが、コメント以外でメディアやダッシュボードなども
    権限のコントロールをすることが出来るものなのでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    返信が遅くなってしまい、大変申し訳ありませんでした。

    ソートと記事が見つからなかった場合の表示について、
    無事両方とも出来ました!

    何度も何度もお世話になってしまい、本当に失礼だと思いますが、
    粘り強く対応して下さり、感謝しています。

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

    もし、また質問するようでしたらすいません。
    その時は、またよろしくお願いします。

    今回は本当にありがとうございました。

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    検索結果のソートが動かない理由について、
    原因が分かりました。

    なぜ、このようなコードを挿入したのか覚えていないのですが、
    検索して記事が見つからなかったときに
    文章を表示するために、以下のようなコードを挿入していました。

    <?php query_posts('posts_per_page=-1&order=DESC&' . $query_string); ?>
    <?php if(have_posts()): while(have_posts()):
    the_post(); ?>
            <?php endwhile; else: ?>
      <p>一致する記事は見つかりませんでした</p>
      <?php endif; ?>

    どうも、このコードとぶつかっていたみたいです。

    ただ、このコードが使えないとなると、
    今回のようなソートのためのコードを用いた時に、
    記事が無かった時の場合を表示する方法というものは
    あるのでしょうか。

    追加的な質問で申し訳ありませんが、
    よろしかったら、ご回答いただけますとありがたいです。

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    情報を記載しておきます

    <?php print_r($args); ?>について

    ・キーワード検索のみの場合
     →Array
      (
    [nopaging] => 1
    [orderby] => date
    [order] => DESC
    [s] => 投稿
      )

    ・キーワード検索+コメント数の多い順ソート+カテゴリ指定の場合
     →Array
      (
    [nopaging] => 1
    [orderby] => comment_count
    [order] => DESC
    [cat] => 5
    [s] => キーワード名
      )

    また、gqevu6bsizさんの
    search.phpと入れ替えた結果、以下のようなことが分かりました
    →・「Search Results for: 投稿」より下が表示されませんでした
     ・フッターも表示されませんでした
     ・記事の一覧が表示されませんでした
     ・ヘッダーから「

    <?php print_r($args); ?>

    」までは
      普通に表示されました

    以下のような部分が変更点かと思います。

    よろしくお願いします

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    以下のような表記でよいのかわかりませんが、
    このようではないかと思い、記載しました

    ・$uriについて(<?php echo $uri; ?>を入れました)
      =http://localhost/wordpress/と表示されました

    ・$argsについて
     →

    <?php print_r($args); ?>

    を入れたところ、
     
      Array
      (
    [nopaging] => 1
    [orderby] => date
    [order] => DESC
    [s] => 投稿
      )

      と表示されました

    ・キーワードを検索したときのURLについて
     →カテゴリーを絞らなかった場合
      =http://localhost/wordpress/?s=キーワード&cat=0
      
      カテゴリを絞った場合
      =http://localhost/wordpress/?s=キーワード&cat=5

    と表示されました

    ・ソート順を選択後のURLについて
     (コメント数の多い順でソートしました)
     →カテゴリーを絞らなかった場合
      =http://localhost/wordpress/?orderby=comment_count&order=DESC&s=キーワード

     →カテゴリーを絞った場合
      =/category/カテゴリー名/?orderby=comment_count&order=DESC&s=キーワード

     と表示されました

    ・現状について
     →現状は、日付の新しい順で記事の一覧が表示されています

    以上が情報となるのですが、大丈夫でしょうか
    よろしくお願いします

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    表示する記事の数については、
    gqevu6bsizさんが提示してくださいましたコードの挿入によって、
    出来ました。

    また、別件も無事機能しました。

    ただ、検索結果については、ソートが出来ませんでした。
    gqevu6bsizさんが作成してくださいましたコードを
    そのまま貼り付けてみましたが、カテゴリーを絞り込む、絞り込まないに関わらず
    ソートが出来ませんでした。

    なにか他のコードが邪魔をしてしまう、ということがあるのでしょうか。

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    本当に申し訳ないです。

    いろいろと考え、試したところ、
    gqevu6bsizさんのコードを用いて、結果的に以下のようなコードにしました。

    (以下のコードは、category.phpに入れました)

    <?php $uri = home_url( '/' ); ?>
        <?php if( is_category() or is_tag() ) : ?>
          <?php $term = get_queried_object(); ?>
          <?php if ( $term ) : ?>
            <?php $uri = get_term_link( $term , $term->taxonomy ); ?><br>
          <?php endif; ?>
        <?php endif; ?>
    
        <div class="sort">
        <select name="original-sort-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'date' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'date' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>日付の新しい順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'date' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'date' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>日付の古い順</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'title' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'title' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>タイトル順(あ~わ・A~Z)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'title' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'title' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>タイトル順(わ~あ・Z~A)</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_average' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_average' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価の高い順(平均)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_average' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_average' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価の低い順(平均)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_score' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_score' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価の高い順(総合)</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_score' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_score' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価の低い順(総合)</option>  
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_users' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_users' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>評価数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'ratings_users' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'ratings_users' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>評価数の少ない順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'comment_count' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'comment_count' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>コメント数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["orderby"] ) && !empty( $_GET["order"] ) ) : if( $_GET["orderby"] == 'comment_count' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'orderby' => 'comment_count' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>コメント数の少ない順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'views' && $_GET["order"] == 'DESC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'views' , 'order' => 'DESC' ), $uri ); ?>" <?php echo $Selected ?>>閲覧数の多い順</option>
    
          <?php $Selected = ''; if( !empty( $_GET["meta_key"] ) && !empty( $_GET["order"] ) ) : if( $_GET["meta_key"] == 'views' && $_GET["order"] == 'ASC' ) : $Selected = 'selected="selected"'; endif; endif; ?>
          <option value="<?php echo add_query_arg( array( 'meta_key' => 'views' , 'order' => 'ASC' ), $uri ); ?>" <?php echo $Selected ?>>閲覧数の少ない順</option>
    
        </select>
            </div>   
    
        <?php
        // 何の指定もないときのデフォルトのソート順
        $args = array( 'nopaging' => 1 , 'orderby' => 'date' , 'order' => 'DESC' );
    
        if( is_category() ) {
          $args["cat"] = get_query_var( "cat" );
        } elseif( is_tag() ) {
          $args["tag"] = get_query_var( "tag" );
        }
    
        if( !empty( $_GET["meta_key"] ) ) {
          $args["meta_key"] = strip_tags( $_GET["meta_key"] );
          $args["orderby"] = 'meta_value_num';
          } elseif( !empty( $_GET["orderby"] ) ) {
          $args["orderby"] = strip_tags( $_GET["orderby"] );
          unset( $args["meta_key"] );
    
        }
    
        if( !empty( $_GET["order"] ) ) {
          $args["order"] = strip_tags( $_GET["order"] );
        }
        ?>
    
        <?php query_posts( $args ); ?>

    このコードだと、一通りソートができ、よいのではないかと思っていました。

    ただ、上記のコードだと、筆者ごとのソートと、検索結果のソートをどのように
    作ればいいかがいまいちよくわかりませんでした。
    (カテゴリーを絞った場合も、同様にわかりませんでした。)

    以前から何度も教えていただいているのにも関わらず、
    勝手な対応で、非常に申し訳ないと思っていますが、
    上記のコードの工夫で、筆者や検索の場合などでも、
    ソートが出来るようでしたら、教えていただきたいです。

    また、先ほど気づいたのですが、
    gqevu6bsizさんが教えてくださいましたコードも、
    私が勝手に変えてしまった上記のコードも、
    どちらのコードを用いても、
    「管理画面」の「設定」にある「表示設定」から表示する記事の数を
    制限しても機能せず、全ての記事が表示される、という状況になってしまいます。

    いろいろと調べてみると、
    どうも、query_postsが影響しているみたいです。

    この部分に対しても、gqevu6bsizさんのコードで
    なにか工夫が出来ることがありましたら、教えていただきたいです。

    長くなってしまうと同時に、一方的に話を進めてしまって
    非常に申し訳ないと思っています。
    お手数ですが、もしよろしければ、
    ご回答をよろしくお願いします。

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事一覧の時のソートができません
    トピック投稿者 gakusei

    (@gakusei)

    gqevu6bsizさん

    たびたび申し訳ありません。

    別のトピックをたてるか悩みましたが、
    トピックを未解決にすることにしました。
    すいません。
    もし、お時間があるようでしたら、ご回答いただけますとありがたいです。

    何度も質問してしまって、非常に申し訳ないです。

    検索フォームで検索するときに、
    <?php wp_dropdown_categories(); ?>を使うことで、カテゴリーを絞って検索できるようにしました。

    ただ、gqevu6bsizさんのコードを使っても、<?php wp_dropdown_categories(); ?>で
    絞って検索した時に、ソートが出来ませんでした。

    検索フォームをカテゴリーで絞った場合でも、
    gqevu6bsizさんのコードでのソートは出来るのでしょうか。

    本当にすいません。
    よろしくお願いします。

15件の返信を表示中 - 1 - 15件目 (全32件中)