WordPress の wp_insert_post() で投稿した記事が WP_Query や get_posts() で取得できない時の確認ポイント
2022/12/28
備忘録。ピンポイントなメモです。
状況
- 変則的なデータを管理するためのカスタム投稿をつくり、wp_insert_post()で管理UIから登録しておいて、フロントで加工して表示する、という仕組みを作成。
-
この時、WP_Queryやget_posts()で
- 管理画面から→取得できる
- Ajaxで→取得できる
- フロントのサブループとして→取得できない
解決
- wp_insert_post()のパラメータの
'post_status'
のデフォルト値はdruft
⇔WP_Queryやget_posts()の'post_status'
のデフォルト値はpublic
というのが原因。 - 取得時に
'post_status'
のパラメータにdruft
を設定しておけばOK。 - 最初はregister_post_type()のパラメータの問題かと思ってめっちゃ検証したけど関係なし。
広告
2022/12/28
次の記事(2023/03/10)
tusプロトコルを使ってPHPで vimeo に動画をアップロードする
前の記事(2022/11/14)
WordPressのカテゴリー・タクソノミーの編集画面にフィールドを追加する