2

Wordpress サイトで作業していて、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました. テンプレートの投稿をフィルタリングする次の query_post があり、うまく機能しています。

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, ) );

これを追加して、高度なカスタム フィールドからの特定の値のチェックを含めるにはどうすればよいですか? このカテゴリの投稿には、「プライマリ」「セカンダリ」「標準」の 3 つのオプションがあるラジオ ボタンがあります。各値をチェックできるようにしたいです。つまり、「galoretv」と「標準」に属している場合は、これを行います。

上記のパラメーターを使用してページを実行およびソートしていますが、ACF 値を追加する方法がわかりません。スティッキーオプションを使用して動作させることができましたが、プライマリとセカンダリのオプションが必要なため、動作します。これは、スティッキーで動作させたショーです。

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, 'post__in'=>get_option('sticky_posts')) );

ラジオ ボタン フィールドは「landing-grid-placement」と呼ばれます

何かご意見は?ドキュメントを確認していますが、わかりません。 http://www.advancedcustomfields.com/docs/field-types/checkbox/

これはうまくいくと思ったが、うまくいかなかった

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, 'landing-grid-placement' => 'primary') );

どんな助けでも大歓迎です。これはおそらく単純な構文の問題ですが、私を逃して多くの問題を引き起こしています。答えを探していますが、まだ正しくありません。これを読んでくれた人に感謝し、解決策を提供してくれた人に感謝します。

以下の注記ごとに追加されたコード

 <?php

    $args = array(
        'post_type' => 'post',
        'category-slug' => 'models-galore',            
        'showposts'=>1, 
        'meta_query' => array(
            array(
                'key' => 'grid_location',
                'value' => 'primary',
                'compare' => '=', 
                'type' => 'CHAR' 
            )
        )
    );

    $query = new WP_Query($args);
    if($query->have_posts()) {
        while($query->have_posts()) {
            $query->the_post();
            ?>

            <li class="span8">
                <div class="thumbnail">
                    <a href="<?php echo get_permalink(); ?>"><?php echo get_the_post_thumbnail( get_the_ID(), 'media-large-thumb' ); ?></a>
                    <h3>
                        <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
                    </h3>
                </div>
            </li>
            <?php
        }
    }

    ?>
4

1 に答える 1

1

これは meta_query で行うことができます

これがドキュメントです

そして、ここに例があります:

$args = array(
    //...
    'post_type' => 'post', 
    'paged'=>$paged, 
    //...
    'meta_query' => array(
        array(
            'key' => 'landing-grid-placement',
            'value' => 'primary',
            'compare' => '=', //default
            'type' => 'CHAR' //default
        )
    )
);

//This is the shoposts option (deprecated since 2.1, now use posts_per_page)
$args['posts_per_page'] = -1; //-1 = infinite

//to add taxonomy
$args['tax_query'] = array(
    array(
        'taxonomy' => 'category',
        'field' => 'slug',
        'terms' => 'galoretv'
    )
);

$query = new WP_Query($args);
if($query->have_posts()) {
    while($query->have_posts()) {
        $query->the_post();
        ?>
        <li class="span8">
            <div class="thumbnail">
                <a href="<?php echo get_permalink(); ?>"><?php echo get_the_post_thumbnail( get_the_ID(), 'media-large-thumb' ); ?></a>
                <h2>
                    <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
                </h2>
            </div>
        </li>
        <?php
    }
}

多分あなたのためのより簡単な解決策があります:

$args = array(
    //...
    'post_type' => 'post', 
    'paged'=>$paged, 
    //...
    'meta_key' => 'landing-grid-placement', 
    'meta_value' => 'primary',
    'meta_compare' => '=' //default
    )
);
$query = new WP_Query($args);
if($query->have_posts()) {
    while($query->have_posts()) {
        $query->the_post();
        //do what you would normally do in your loop
    }
}
于 2012-12-05T14:18:21.310 に答える