WordPress の wp_insert_post() で投稿した記事が WP_Query や get_posts() で取得できない時の確認ポイント

備忘録。ピンポイントなメモです。

    状況

    • 変則的なデータを管理するためのカスタム投稿をつくり、wp_insert_post()で管理UIから登録しておいて、フロントで加工して表示する、という仕組みを作成。
    • この時、WP_Queryget_posts()
      • 管理画面から→取得できる
      • Ajaxで→取得できる
      • フロントのサブループとして→取得できない
      という状況。

    解決

    • wp_insert_post()のパラメータの'post_status'のデフォルト値はdruftWP_Queryget_posts()'post_status'のデフォルト値はpublicというのが原因。
    • 取得時に'post_status'のパラメータにdruftを設定しておけばOK。
    • 最初はregister_post_type()のパラメータの問題かと思ってめっちゃ検証したけど関係なし。

    サポートが必要ですか?

    ご質問・お見積り依頼はお気軽にどうぞ

    お問い合わせはこちら
    シェア
    野良人 代表
    新免祥太
    1988年岡山生まれ。外食企業のWEB・EC担当を経験したのち、2013年12月より「野良人(のらんど)」の屋号で独立しWEBデザイン・プログラミングなどWEBサイト制作の工程全般を請け負っています。お気軽にご相談ください。
    広告
    次の記事(2023/03/10)
    tusプロトコルを使ってPHPで vimeo に動画をアップロードする
    前の記事(2022/11/14)
    WordPressのカテゴリー・タクソノミーの編集画面にフィールドを追加する
    記事一覧