[ 解決済 ] Lightning アーカイブページ設定 > 表示順オプションのOrder byを無効or回避する方法について

VWSとは フォーラム Lightning [ 解決済 ] Lightning アーカイブページ設定 > 表示順オプションのOrder byを無効or回避する方法について

[ 解決済 ] Lightning アーカイブページ設定 > 表示順オプションのOrder byを無効or回避する方法について

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #55820

    ■ WordPress のバージョン
    5.8

    ■ テーマ・プラグインは全て最新版で確認してください。
    確認しました。

    ■ テーマの種類
    Lightning ( G2 )

    ■ テーマのバージョン
    8.11.2

    ■ スキンの種類
    Origin II

    ■ 関連しそうなプラグインを一つづつ停止して症状が改善するか確認してください。
    確認しました。

    ■ 期待する動作
    1. カスタム投稿タイプを作成し、独自の列を追加する。
    2. その列に000~999まで数字を文字列として入れる。空白や重複は無し。
    3. その文字列に従い昇順でソートした状態で、アーカイブページに一覧表示する。

    ■ 自分で試した事
    1. カスタム投稿タイプ(名称:program)を作成した。
    2. カスタム投稿タイプに列(名称:furigana)を追加した。
    3. 以下のコードをfunction.phpに記述した。

    
    function program_sort_by_furigana( $query ) {
        if ( is_post_type_archive('program') && ! empty( $query->query['post_type']  == 'program' )) {
    		$query->set('meta_key', 'furigana');
    		$query->set('orderby', 'meta_value');
    		$query->set('order', 'ASC');
        }
    }
    add_action('pre_get_posts', 'program_sort_by_furigana');
    

    ■ 症状が発生するブラウザ
    Chrome 92.0.4515.159

    ■ 実際の症状
    ・アーカイブページの表示が、furigana列の順序にならない。
    ・Lightning アーカイブページ設定 > 表示順オプションのOrder byと順番の設定が効いている。

    furigana列の内容でソートするタイミングが早いと思うのですが、表示順オプションを無効or回避する手段はありますでしょうか?

    ■ その他特記事項
    `

    • このトピックはAkihito Shinoharaが2週、 5日前に変更しました。
    • このトピックはVektor,Incが2週、 4日前に変更しました。
    #55827

    DRILL LANCER
    モデレーター

    add_action('pre_get_posts', 'program_sort_by_furigana');

    上記を下記のようにしてはいかがでしょうか?(数値は適当ですが・・・)

    add_action('pre_get_posts', 'program_sort_by_furigana', 9999 );

    参考:
    https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_action

    add_action()

    #55842

    DRILL LANCERさん

    ご教授いただきありがとうございます。

    priorityで実行順序を後にするということですね。
    さっそく試してみたいと思います。
    結果は後ほど報告させていただきます。

    #55915

    DRILL LANCERさん

    ご教授いただいた方法で実現できました。
    ありがとうございました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。