-
投稿者投稿
-
2024年6月3日 1:15 AM #139867
【お使いの Snow Monkey のバージョン】 25.4.6
【お使いの Snow Monkey Blocks のバージョン】20.5.4
【お使いの Snow Monkey Editor のバージョン】9.4.0
【お使いの PHP のバージョン】7.4.33
【お使いのブラウザ】chrome
【当該サイトのURL】https://x05.piemx.me/%e8%a8%98%e4%ba%8b%e4%b8%80%e8%a6%a7/### 実現したいこと
投稿下のページめくりが、投稿順になっている。
これを、表示順と同様、ASCIIコード順にしたい### 発生している問題
投稿下のページめくりが、投稿順になっていて、読者に何の順番かわからない
### 試したこと
以下のコードを改良してできないかとおもったけど、該当箇所をフックする方法がわからなかった。
/** 投稿一覧の制御 */ add_filter( 'snow_monkey_get_template_part_args_template-parts/common/entries/entries', function( $args ) { // 一覧または関連用語のとき if ( 'archive' === $args['vars']['_context'] || 'snow-monkey/related-posts' === $args['vars']['_context'] ) { // 抜粋の表示を有効化 $args['vars']['_display_item_excerpt'] = true; // 抜粋の文字数を変更 $args['vars']['_excerpt_length'] = 40; // 任意の数値を設定してください // 並び順を変更 $args['vars']['_posts_query']->set( 'orderby', 'title' ); $args['vars']['_posts_query']->set( 'order', 'ASC' ); // セットしたクエリーをもとに WP_Query をリセット $args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars ); } return $args; } );
♥ 0いいねをした人: 居ません2024年6月3日 7:46 AM #139872「投稿下のページめくり」というのは具体的にどの部分のことでしょうか?
提示いただいた URL に表示されている一覧はAFAB → AGA → AID、IVF-D → AMAB → A面 → BDSM
となっていて、意図した順序になっているように見えますが…。
♥ 0いいねをした人: 居ません2024年6月3日 12:40 PM #139878いや、そのはあとから追加したから、たまたまなんです
♥ 0いいねをした人: 居ません2024年6月4日 2:14 AM #139888中性、中性的 → おかま → パートナーシップ宣誓制度、同性パートナシップ条例
と、ページめくりは後半なってるので、やはり投稿順になってるとおもわれます
項目の並び順は
Xジェンダー
↓
おかま
↓
おねぇです
♥ 0いいねをした人: 居ません2024年6月4日 10:58 AM #139900検索してみたら、五十音順に並べる用のカスタムフィールドを用意して、そのカスタムフィールドで並び替えるという記事がでてくるので、そもそも五十音順にするというのが普通にはできないのかも?
自動が無理なら下記のようなプラグインで管理画面上で並べ替えてしまうのも良いかもしれません。
♥ 0いいねをした人: 居ません2024年6月4日 12:05 PM #139903その手しかないのですね。てっきり用語一覧はできたから出来るのかなとおもってました
どっちを採用するか検討してみます。ありがとうございました
ちょっと、結果でるまでトピックこのままにさせて下さい
♥ 0いいねをした人: 居ません2024年6月4日 2:12 PM #139905カスタムフィールドつくる方法で作業をはじめました
ふりがなには初期値で「あ」がはいってます
一部にフリガナを振りましたしかしページめくりが変わりません
投稿一覧と、投稿でのページめくりが混乱しています
どちらもカスタムフィールドでならべたいですコードおかしいところみてもらえますか
/** 投稿一覧の制御 */ add_filter( 'snow_monkey_get_template_part_args_template-parts/common/entries/entries', function( $args ) { // 一覧または関連用語のとき if ( 'archive' === $args['vars']['_context'] || 'snow-monkey/related-posts' === $args['vars']['_context'] ) { // 抜粋の表示を有効化 $args['vars']['_display_item_excerpt'] = true; // 抜粋の文字数を変更 $args['vars']['_excerpt_length'] = 40; // 任意の数値を設定してください // 並び順を変更 $args['vars']['_posts_query']->set( 'orderby', 'title' ); //$args['vars']['_posts_query']->set( 'meta_key', 'furigana' ); //$args['vars']['_posts_query']->set( 'orderby', 'meta_value' ); $args['vars']['_posts_query']->set( 'order', 'ASC' ); // セットしたクエリーをもとに WP_Query をリセット $args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars ); } return $args; } ); /** 投稿の並び順 */ function my_orderby_meta_key( $query ) { if ( ! is_admin() ) { if( $query->is_main_query() ) { if( $query->is_post_type('post') ) { $query->set( 'meta_key', 'furigana' ); // ふりがなのカスタムフィールド名 $query->set( 'orderby', 'meta_value' ); $query->set( 'order', 'ASC' ); $query->set( 'post_type', array( 'post' ) ); } } } } add_action( 'pre_get_posts', 'my_orderby_meta_key' );
♥ 0いいねをした人: 居ません2024年6月5日 9:23 AM #139913すみません、上のほうでも書きましたが、「投稿一覧」と「投稿でのページめくり」というのが具体的にどこを指しているのかがわかっていないので、それぞれの URL、あるいはそれぞれのスクショを頂くことはできますか?
♥ 0いいねをした人: 居ません2024年6月5日 2:40 PM #139916投稿でのページめくりとはここの部分のことです! わかりにくくてスミマセン
♥ 0いいねをした人: 居ません2024年6月5日 8:38 PM #139921ありがとうございます! 前後それぞれの投稿は、WordPress 標準の「前後の投稿を取得する関数」で取得しています。その関数の処理を辿っていくと、下記の関数で実際の取得処理が行われているようでした。
ただ、具体的にどうやればその取得条件を変えて、つまり特定のソート条件の中で前後の投稿を取得するかというやり方まではわかりませんでした。いっぱいフックがあるみたいなのでめちゃくちゃ工夫すればできないことはないのかもしれませんが、そこまでやるのであれば各記事の公開日を調整するとか、並び替えプラグインで並び替えて
get_{$adjacent}_post_sort
フックでソート条件をmenu_order
にする(動作未確認)、のほうができそうかなと感じました。♥ 0いいねをした人: 居ません2024年6月6日 4:46 PM #139928動作確認できてませんが、こんな感じのコードになると思います
2024年6月7日 1:18 AM #139931お二人ともありがとうございました
思った以上に深い問題なんですね並び変えプラグインは200項目を50音順に手作業で並び変える手間と、新項目をかんがえると避けたく
カスタムフィールドでいきたいですまーちゅーさんのGitHubのコードは、my-sonw-monkey.phpに記述して動作する可能性ありますか?
そもそもfunction.phpとmy-sonw-monkey.phpは互換性あるんですよねそれとも子テーマ作ってカスタマイズレベルですか
♥ 0いいねをした人: 居ません2024年6月10日 11:45 AM #140022動作確認する場合は、my-sonw-monkeyにコード追加でOKです。
♥ 0いいねをした人: 居ません2024年6月11日 12:20 AM #140044まーちゅうさんのコードをmy-sonw-monkeyにコピーしました
エラーはでてないのですが、まだソートが動作しませんカスタムフィールドのキーは確認しました。
あとどっか設定等でそろえておくところありますか♥ 0いいねをした人: 居ません2024年6月11日 2:59 AM #140045一応断っておきますが、上のコードは動作確認もしていなくて、こんな感じでいろいろコード書かないと実現できないですよということを理解してもらうためにChatGPTに書かせたコードです。
きちんと動作させるためには、前後の投稿のタイトル(furigana)だけでなく、リンクURLも取得しないといけないし、
snow-monkey/template-parts/content/prev-next-nav.php の中身も書き換えないとダメだと思います。並び変えプラグインは200項目を50音順に手作業で並び変える手間と、新項目をかんがえると避けたく
カスタムフィールドでいきたいです手作業で全部の記事を並べ替えるのは手間でしょうが、いろいろなフックを調べたりして時間をかけてコードを書くのもかなりの手間です。
私の感覚では、誰かに頼んで有償対応してもらうぐらいのレベルだと思います。要望は分かりますが、このフォーラムはコミュニティであり、カスタマーサポートセンターではありませんので、そこのところは理解していただきたいと思います。
並べ替えのプラグイン Post Types Order の有料版に Advanced Post Types Order というのがあります。
こちらのプラグインなら、自動ソート機能があるので何百記事でも簡単に並べ替えができます。
カスタムフィールドにも対応しているようです。39ドルで買い切りのプラグインですので、検討してみてはどうでしょうか?
-
投稿者投稿
- トピック「投稿したのページめくりの順番を変えたい」には新しい返信をつけることはできません。