投稿の有効期限(自動非公開)設定
カスタムフィールド _expiry_date に日付を設定すると、期限後に投稿を自動で非公開にするcron実装。
解説
wp_schedule_event で1時間ごとにカスタムアクションを実行。_expiry_date メタが今日より前の公開投稿をdraftに更新する。投稿編集画面でカスタムフィールド _expiry_date に YYYY-MM-DD 形式で期限を設定して使う。
いつ使うか
- 既存テーマの挙動を後付けで調整したいとき
- プラグインを増やさずに小規模カスタマイズしたいとき
- クライアント案件で「ちょっとした要望」に応えるとき
適用時の注意点
functions.php はサイト全体に影響します。本番に貼る前にステージング環境で必ず動作確認を。テーマ更新で消えないよう 子テーマ または Code Snippets プラグイン で運用するのが推奨。
よくある質問
このコードはどこに貼れば良いですか?
子テーマの
functions.php もしくは Code Snippets プラグインに貼り付けて有効化してください。WordPress のバージョンによって動きませんか?
本サイトは WordPress 6.x 系(2026 年時点)を前提に動作確認しています。
プラグインと競合する可能性はありますか?
同じフィルタフックを別プラグインが使っている場合、競合する可能性があります。
商用利用できますか?
はい。moatway がオリジナル制作した PHP コードは商用・個人問わず自由にご利用いただけます。