サポート » 使い方全般 » カスタムフィールドの値で特定の記事だけを除外したい

  • tohaku2207

    (@tohaku2207)


    初めて質問させていただきます。

    カスタム投稿タイプnewsニュースの中で、特定のカテゴリのみACFでカスタムフィールドを設置しました。

    ▼カテゴリ
    emergency
    cat_a
    cat_b~news_view(ラジオボタン)
         ┗all : 全公開
         ┗mem : メンバーのみ
    cat_c
    cat_d

    この状態で、トップページのお知らせに「emergency」と「cat_bのmem」を除外したニュースを載せたいです。
    以下のコードで「emergency」を除外することはできました。

    $tax_query = [
                        'relation' => 'AND',
                        [
                            'taxonomy' => 'news_cat',
                            'field' => 'slug',
                            'terms' => ['emergency'],
                            'operator' => 'NOT IN',
                        ],
                    ];
            // ニュース一覧取得
            $news_list = new WP_Query([
                        'post_type' => 'news', //投稿タイプの指定
                        'posts_per_page' => '3', //表示件数
                        'post_status' => 'publish', //公開状態
                        'orderby' => 'date', //ソートの基準
                        'order' => 'DESC', //DESC降順 ASC昇順
                        'paged' => '1',
                        'tax_query' => $tax_query, //カテゴリー
                    ]);

    しかし、「cat_bのmem」を除外しようと以下のように記述したところ、
    「cat_bのall」のみが表示され、「cat_a」「cat_c」「cat_d」も除外されてしまいました。

    $tax_query = [
                        'relation' => 'AND',
                        [
                            'taxonomy' => 'news_cat',
                            'field' => 'slug',
                            'terms' => ['emergency'],
                            'operator' => 'NOT IN',
                        ],
                    ];
                    $metaquery = array(
                        'relation' => 'AND',
                        array(
                            'key' => 'news_view',
                            'value' => 'mem',
                            'compare' => '!=',
                            )
                        );
            // ニュース一覧取得
            $news_list = new WP_Query([
                        'post_type' => 'news', //投稿タイプの指定
                        'posts_per_page' => '3', //表示件数
                        'post_status' => 'publish', //公開状態
                        'orderby' => 'date', //ソートの基準
                        'order' => 'DESC', //DESC降順 ASC昇順
                        'paged' => '1',
                        'tax_query' => $tax_query, //カテゴリー
                        'meta_query' => $metaquery, // 追加条件(カスタムフィールド)
                    ]);

    どうすれば「emergency」と「cat_bのmem」を除外したニュースを載せることができるでしょうか?

    宜しくご指導御お願いいたします。

  • このトピックに返信するにはログインが必要です。