質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

1回答

586閲覧

メイン画面の投稿の並び順をPost Expiratorで設定した期限日付順にしたい

aiueo0227

総合スコア1

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2021/07/02 01:21

前提・実現したいこと

WordPressサイトでメインループメイン画面の投稿の並び順をPost Expiratorで設定した期限日付順(未設定末尾、降順)にしたいです。

試したこと

https://thewppress.com/libraries/change-sort-order-of-the-main-loop/
こちらのサイトで記載の通り下記ソースコードは実行のうえ動作確認はできました。
並び順を制御するためのパラメータにはプラグインであるPost Expiratorの日付を指定するパラメータは追加されないていないでしょうか。また他の方法で期限日付順(未設定末尾、降順)にする方法があればご教示いただけませんでしょうか。
何卒宜しくお願い致します。

該当のソースコード

function twpp_change_sort_order( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( $query->is_home() ) {
$query->set( 'order', 'ASC' );
$query->set( 'orderby', 'title' ); ←'title'ではなく期限日付を指定したい
}
}
add_action( 'pre_get_posts', 'twpp_change_sort_order' );

補足情報(FW/ツールのバージョンなど)

WordPressバージョン: 5.7.2
Post Expiratorバージョン 2.4.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

並び替え方法が、Post Expirator プラグイン側で用意されていない場合は、データの保存方法を調べて自分でPHPコードを記載する必要があります。

Post Expirator のリポジトリで、ざっくりとソースコードを見た感じでは、カスマムフィールドに保存しているようなので、

$query->set('orderby', 'meta_value_num'); $query->set( 'meta_key', '_expiration-date' );

を指定して、カスタムフィールドでソートしたらどうなりますか?

投稿2021/07/02 03:38

CHERRY

総合スコア25218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiueo0227

2021/07/02 10:38

回答ありがとうございます。 再度検証したところ「該当のソースコード」として記載した以下が動作しておりませんでした。 -------------------------------------------------------------------------- function twpp_change_sort_order( $query ) { if ( is_admin() || ! $query->is_main_query() ) { return; } if ( $query->is_home() ) { $query->set( 'order', 'ASC' ); $query->set( 'orderby', 'title' ); ←'title'ではなく期限日付を指定したい } } add_action( 'pre_get_posts', 'twpp_change_sort_order' ); -------------------------------------------------------------------------- ですので回答いただいた以下もだめでした。 function twpp_change_sort_order( $query ) { if ( is_admin() || ! $query->is_main_query() ) { return; } if ( $query->is_home() ) { $query->set('orderby', 'meta_value_num'); ☆ $query->set( 'meta_key', '_expiration-date' );☆ } } add_action( 'pre_get_posts', 'twpp_change_sort_order' ); ---------------------------------------------------------------------------- 根本的な指定方法を確認しなおす必要があるようです。 お手数をお掛けし申し訳ございません。
CHERRY

2021/07/02 11:08

どこのファイルにきさいされたのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問