web-dev-qa-db-ja.com

特定の投稿メタのすべてを自分が設定しているカスタム投稿タイプ内の値に設定するにはどうすればよいですか。

私は現在(チェックされている場合)「注目」として特定の投稿を設定するカスタムチェックボックスを持っています。現在の投稿を設定する直前に、他のすべての投稿を「未承認」として設定します。

これはうまく機能しましたが、私は現在、複数のカスタム投稿タイプを持っているので、自分のいるカスタム投稿タイプの中でローカルにのみ機能するように「未熟」な部分が欲しいのです。

それは理にかなっていますか?

そのため、「ホワイトペーパー」セクションを編集して「注目」としてチェックした場合、以前の注目ホワイトペーパーの設定は解除されますが、他のカスタム投稿タイプはそのままになります。これは、すべての投稿タイプからすべてのおすすめ投稿を設定解除するコードです。

if ( isset( $_POST[ 'is-it-featured' ] ) ) {
    $posts = get_posts($args);
    foreach ( $posts as $post ) {
        // Run a loop and update every meta data
        update_post_meta( $post->ID, 'is-it-featured', '0' );
    }
    update_post_meta( $post_id, 'is-it-featured', '1' );
} else {
    $posts = get_posts($args);
    update_post_meta( $post_id, 'is-it-featured', '0' );
}
1
user3525785

使用する$ argsパラメータを含めてください。

ただし、get_posts $ argsパラメータ内では、 "post_type"引数を使用して、見つかった投稿を特定の投稿タイプに制限できます。

0
kuchenundkakao