高级自定义字段按单选按钮值

时间:2016-05-04 22:01:24

标签: javascript wordpress advanced-custom-fields

是否有通过acf单选按钮值订购数组的智能方法? 我有一个首页页面模板,以及一些带有自定义字段的子页面。

在首页我想显示子页面中的一些值: 页面标题,以及子页面acf字段中的一些值 最后我想通过acf单选按钮值来命令数组。

单选按钮值为:

one : A 
two : B
three : C
four : D
five : E

该字段是强制性的,因此我不必测试是否有值。

        <section id="info-box">

            <?php
            if(function_exists( 'get_field') ){

            $query = new WP_Query( 'pagename=top-page' );
            $services_id = $query->queried_object->ID;

            wp_reset_postdata(); //* Restore original Post Data *//

                $args = array(
                'posts_per_page' => -1,
                'post_type' => 'page',
                'post_parent' => $services_id,
                'orderby' => '', // radio button value //
                'order' => 'ASC'
                );

                $services_query = new WP_Query( $args );

                    // The Loop
                    if ( $services_query->have_posts() ) {

                        echo '<ul class="info-box-list">';
                            while ( $services_query->have_posts() ) {
                            $services_query->the_post();

                            echo '<li class="list-item">'; 

                                echo '<div class="list-item-box">';

                                echo '<a href="' . get_permalink() . '" figure class="link-box-image">';
                                the_field('image');
                                echo '</figure>';
                                echo '</a>';

                                echo get_the_title();
                                the_field( 'sub-title' );

                                echo '</div>';
                            echo '</li>';
                            }
                        echo '</ul>';
                    }

            /* Restore original Post Data */
            wp_reset_postdata();
            }
        ?>  
       </section>

现在我有点只是将字段转储到首页上,直到我可以弄清楚是否有通过单选按钮值订购列表的智能方法,acf文档在单选按钮功能。

1 个答案:

答案 0 :(得分:1)

您需要的是order by a custom field,但要小心,因为您的单选按钮值为&#39; (一,二,三......)真正的顺序是:

  1. 5
  2. 4
  3. 一个
  4. 3
  5. 2
  6. (那就是:字母)因此,如果您想按数字排序,最好将单选按钮值设置为:

    1 : A 
    2 : B
    3 : C
    4 : D
    5 : E
    

    在此之后,您应该以这种方式设置WP_Query的$args数组:

    $args = array(
        'posts_per_page' => -1,
        'post_type'      => 'page',
        'post_parent'    => $services_id,
        'orderby'        => 'meta_value_num',
        'meta_key'       => 'YOUR_RADIO_BTN_FIELD_NAME',
        'order'          => 'ASC'
    );
    

    这应该可以解决问题:)