gakusei
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
返答が遅くなってしまい、本当に申し訳ないです。
すいませんでした。ソートについてですが、
無事希望のものが出来ました。解決済みにも関わらず、ここまで教えていただき、
本当に感謝しています。
ありがとうございました。ぜひ、また他でもご教授いただければ嬉しいです
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
自ら解決済みにしたにも関わらず、質問をしてしまい、申し訳ありません。
カテゴリー別の記事のソートは出来たのですが、
投稿者別の記事一覧と、検索結果の記事一覧のソートが出来ませんでした。同じコードを使ったところ、カテゴリー別の記事のソート以外は、
トップページに戻されるということが起きました。ソートをする方法はありますでしょうか。
延長する形になってしまいまして、本当に申し訳ありません。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
gqevu6bsizさんが教えてくださいましたコードの貼り付けで、
完全に希望のものが出来ました!長期にわたって粘り強く教えていただきましてありがとうございました。
何とお礼を言ったらよいかわかりませんが、
初心者がゆえに、またフォーラムで質問すると思いますので、
その時はまたよろしくお願いします。非常に細かい質問ばかりで本当に申し訳ないと同時に、
gqevu6bsizさんには大変お世話になりました。ここで終わってしまうのは、私としてはもったいなく、惜しいことですが、
gqevu6bsizさんには、また教えていただけますと嬉しいです。一方的であるため失礼だということはよく理解していますが、
トピックの内容は解決しましたので、
一応ここでは解決済みとさせていただきます。本当にありがとうございました。
今後ともよろしくお願いします。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
gqevu6bsizさんが用意してくださいましたコードを貼り付けてみましたが、
ソート出来ず、トップページに戻されてしまいました。ただ、gqevu6bsizさんのコードを
以前まで作成していたソート機能のどこの部分を入れ替えるべきか
理解できていなかったので、以前までのコードである以下のものと入れ替えてみました。<?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; ?> ドロップダウン形式<br> <div class="sort"> <select name="original-sort-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value="">ソート順を選択</option> <?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さんが今回用意してくださいましたコードは
どのように利用するのが良いのでしょうか?申し訳ありません。
よろしくお願いします。フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
ご回答遅くなってしまいまして申し訳ありません。
ほぼ希望のものが出来ました。
また、私が希望するソートの機能で一つ加え忘れてしまったのですが、
現在は、「ソート順を選択」がソートのトップに来ています。
そのため、ドロップダウンで選択すると、実際にソートされたときに
「ソート順を選択」にドロップダウンの表示が変わります。そこで、例えば「アクセス数の多い順」でソートした場合、
ソート後の「ソート順を選択」ではなく、「アクセス数の多い順」になる、
というように、ソートした項目が画面上に表示されるようにしたいと考えています。長い文章かつ、突然の質問の追加で申し訳ないです。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
ほとんどの項目でソートが出来ました。
ただ、評価の総合点順については、
ratings_scoreを使ってソートを出来るようにしましたが、
ソートが上手く機能しませんでした。完全にソートが出来ていないというわけではなく、
総合点が、5、4、3、1、2、0というように、
若干ソートが出来ていない部分が見受けられました。これは、どこに問題があるのでしょうか?
コードやカスタムフィールドについて調べましたが、
よくわかりませんでした。フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
$args[“orderby”] = ‘meta_value’;
のコードの追加で、アクセス数と評価数のソートも可能となりました私が希望するソートについて記載しなかったことについては、
申し訳ありませんでした。
gqevu6bsizさんのおっしゃる通りです。
最初にどのようなソートを希望しているのかを
ちゃんと説明しておけばよかったです。
すいませんでした。まとめますと、私の希望のソートとしては
・トップページに戻らず、適切に記事の一覧をソート出来る
・ソートする前の最初の投稿を、日付順にしておく
・以下のようなソートが出来る
→・日付順
・タイトル順
・アクセス数順
・コメント数順
・評価数順
・評価の総合点順
・評価の平均点順
・新しく投稿されたコメント順 など
(query_postsに存在する並び替えの引数以外の引数でもソート出来ると
なおありがたいと思いました。)といった感じです。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
いろいろいじってみてわかったのですが、
<?php // 何の指定もないときのデフォルトのソート順 $args = array( 'nopaging' => 1 , 'orderby' => 'meta_value' , 'order' => 'DESC' , 'meta_key' => 'ratings_average' ); ?>
この部分を、
<?php // 何の指定もないときのデフォルトのソート順 $args = array( 'nopaging' => 1 , 'orderby' => 'date' , 'order' => 'DESC' ); ?>
以上のように変更したら、アクセス数と評価数のソートが機能しませんでした。
何の指定もないときのデフォルトのソート順を、日付順にしておきたいのですが、
それは出来るのでしょうか?フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
<select>の位置の問題でした。
初歩的なミスで本当に申し訳ないです。
失礼しました。ただ、やはりアクセス数でのソートは出来ませんでした。
また、私の確認不足でしたが、
評価に関するソートも出来ませんでした。
(アクセス数のソートも評価に関するソートも、日付順でソートされてしまいました。)これは、どのように解決出来るのでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
コメント数でのソートは出来ました。
ありがとうございます。2つ気になることが出てきてしまいました。
1つは、アクセス数についてです。
アクセス数はソートは出来ませんでした。
(実際にソートすると、日付順でソートされました。)
いくつかサイトを見ているとorderby=meta_value_num&meta_key=カスタムフィールド名
で評価とアクセス数についてはソート出来るとあり、
カスタムフィールド名はviewsなので、ソート出来るかと思いましたが、無理でした。
値が入っていることも確認できたので、ソートしない理由が見つけられませんでした。もう1つは、ドロップダウンリストについてです。
category.phpで、
評価平均の多い順
評価平均の少ない順
評価をつけた人数の多い順
評価をつけた人数の少ない順
アクセス数の多い順
アクセス数の少ない順
コメント数の多い順
コメント数の少ない順というように並べたところ、
上の4つだけで、アクセス数とコメント数が表示されませんでした。逆に、
アクセス数の多い順
アクセス数の少ない順
コメント数の多い順
コメント数の少ない順
評価平均の多い順
評価平均の少ない順
評価をつけた人数の多い順
評価をつけた人数の少ない順というように並べたところ、
全ての項目が表示されました。これは、何か問題が発生しているのでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
ごめんなさい
まだ私が理解できていないだけなのかと思いますが、
ソートの項目を増やすことが出来ませんでした。一例ですが、
<?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>
というgqevu6bsizさんのコードで、日付のソートは出来ました。
そこで、コメント数でのソートも考え、調べてみたところ、
dateの部分をcomment_countに変更することで出来そうなので、やってみたところ、
出来ないというよりも、ソートの項目として追加されていませんでした。また、アクセス数に関しては、WP-Postviewsを使い、viewsを使うことで
出来ると分かったので
ratings_averageをviewsに変え、WP-Postviewsのプラグインを有効化したのですが、
こちらも項目としてついかされませんでした。アクセス数やコメント数などは、また別のコードが必要なのでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
gqevu6bsizさんのコードで希望通りのものが出来ました。
本当にありがとうございます。
大変助かりました。ここまでしていただいて、さらに質問するのも申し訳ないのですが、
日付の古い新しいや、アクセス数の多い少ないなどでもソートが出来ると
より素晴らしいと感じ、gqevu6bsizさんが書いてくださったコードをカスタマイズしようと考えたのですが、
やはり理解できず、カスタマイズも出来ませんでした。具体的には、どのあたりをどのようにカスタマイズするのがよいのでしょうか。
初心者ながら、何度も質問してしまい、申し訳ないです。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
①ですが、情報を記載します
たなブログさんの場合
xamppインストール : C:\Users\(PCユーザー名)\xampp
wordpress設置ディレクトリ : C:\Users\(PCユーザー名)\xampp\htdocs\wordpress
wordpressURL : http://localhost/wordpress/
“アクセス数の多い順”を選択した際のURL :http://localhost/wordpress/?narabi=sort5
“アクセス数の少ない順”を選択した際のURL :http://localhost/wordpress/?narabi=sort6※たなブログさんのソートに評価に関するものがなく、カスタマイズの方法が
わからなかったので、「アクセス数」を選択した場合を書きましたKzさんの場合
xamppインストール : C:\Users\(PCユーザー名)\xampp
wordpress設置ディレクトリ : C:\Users\(PCユーザー名)\xampp\htdocs\wordpress
wordpressURL : http://localhost/wordpress/※Kzさんのソートについては、評価に関するものがなく、カスタマイズの方法が
わからなかったので、「コメント数」を選択した場合を書きました。
しかし、Kzさんの場合は、どの項目をクリックしても、認証が必要
http://localhost:サーバーでは、ユーザー名とパスワードが必要です。
サーバーからのメッセージ:という表示が出てしまいました。
②については、インストールしたままのtwentytwelveテーマを使い、
gqevu6bsizさんのcategory.phpをコピーして貼り付けたところ、機能しました。また、私が現在使っているテーマでプラグインを全停止しても動きました。
そこで、category.phpの中身をいろいろといじっていたところ、
gqevu6bsizさんが書いてくださったコードの以下の部分<?php if ( have_posts() ) : ?> <header class="archive-header"> <h1 class="archive-title"><?php printf( __( 'Category Archives: %s', 'twentytwelve' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?></h1> <?php if ( category_description() ) : ?> <div class="archive-meta"><?php echo category_description(); ?></div> <?php endif; ?> </header><!-- .archive-header --> <?php while ( have_posts() ) : the_post(); get_template_part( 'content', get_post_format() ); endwhile; twentytwelve_content_nav( 'nav-below' ); ?> <?php else : ?> <?php get_template_part( 'content', 'none' ); ?> <?php endif; ?>
が、私のコードの以下の部分
<?php global $query_string; ?> <?php query_posts( 'posts_per_page=-1&' . $query_string ); ?> <?php if( have_posts()) : while( have_posts() ) : the_post(); ?> <?php /* Start the Loop */ ?> <?php endwhile; endif; ?>
とかぶるのではないかということがわかりました。
(以前、gqevu6bsizさんにglobalを追記していただいたコードです)ただ、上記で取り上げましたgqevu6bsizさんのコードが理解できず、
私のコードで記事のソートをすることが出来ませんでした。私は、
<?php global $query_string; ?> <?php query_posts('posts_per_page=-1&' . $query_string); ?> <?php if(have_posts()): while(have_posts()): the_post(); ?> <div class="title"> <?php get_template_part('content','title'); ?> </div> <div class="rating"> <?php if ( $ave = get_post_meta( $post->ID, 'ratings_average', true ) ) { $user = get_post_meta( $post->ID, 'ratings_users', true ); $gouke = get_post_meta( $post->ID, 'ratings_score', true ); $width = $ave * 16; echo '<span style="width:' . $width . 'px;">Rating: </span>'; echo '平均:' . $ave . ' 総合:' . $gouke . ''; } else { echo '(未評価です。)'; } ?> </div> <?php endwhile; endif; ?>
というようにして、記事のタイトル一覧を出力し、ソートとしようと考えています。
(評価に関しては、たなブログさんのコードを使わせてもらっています)上記の私のコードで、gqevu6bsizさんが提示してくださいましたソートのコードを用いることは出来るのでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
①ですが、header.phpでたなブログさんとKzさんのコードを挿入してみました。
たなブログさんのコードについては、トップページに戻されてしまいました。
Kzさんのコードについては、「認証が必要」と出てしまい、XAMPPで
サーバー接続のためのパスワードとユーザー名を要求されました。②ですが、上記のgqevu6bsizさんのコードを貼り付けてみました。
その結果、「評価平均の多い順」と「評価をつけた人数の多い順」を選択すると、
日付の新しい順に並び替えられ、
「評価平均の少ない順」と「評価をつけた人数の少ない順」を選択すると、
日付の古い順に並び替えられる、ということが起きました。なぜそうなるのか、調べてみてもよくわかりませんでした。
なにか方法や対策があれば、ぜひ教えていただきたいです。
一方的で申し訳ないですが、よろしくお願いします。
フォーラム: 使い方全般
返信が含まれるトピック: 記事一覧の時のソートができませんgqevu6bsizさん
1のパーマリンクのデフォルトは変化がありませんでしたが、
2のheader.phpの<body>のすぐ下に入れた場合は動きました。gqevu6bsizさんがおっしゃってくださったように、
category.phpに何かしらの問題があるのかもしれないと思い、
いろいろいじってみましたが、問題を見つけられなかったので、
これからもう少し調べたいと思います。そこで、追加で申し訳ないのですが、もう3点追加で教えていただきたいです。
①gqevu6bsizさんのコードはなぜ、動いたのでしょうか
②ソートをカスタマイズしたいと思い、WP-PostRatingsとの組み合わせとして、
<option value='<?php echo add_query_arg( array( 'orderby' => 'meta_value_num' , 'meta_key=ratings_average' , 'order' => 'ASC' ), $uri ); ?>'>評価の高い順(平均)</option>
というコードにしてみたのですが、動きませんでした。
gqevu6bsizさんのコードのカスタマイズはどのように行うのがよいのでしょうか?③category.phpをいじっているときに、サーバーへの要求というページが出てくることがありました。
私はxamppを使っているのですが、サーバーへの要求というのは仕方ないことなのでしょうか?初心者の質問で本当に申し訳ないです。
もしよろしければ、ご回答よろしくお願いします。