Wordpress高级自定义字段选择结果显示两次?

时间:2014-03-26 04:20:39

标签: php wordpress

我在Wordpress中使用高级自定义字段。我使用the_field('品牌')来显示自定义字段的值,在我的例子中,它被称为品牌。但是,当我使用选择字段类型时,结果显示两次。喜欢: 耐克:耐克 阿迪达斯:ADIDAS

我假设一个是标签,一个是价值?我怎样才能在前端显示值? 这是我的代码

谢谢你,Akshay。但它仍然显示标签和价值。下面是我的代码:

$args = array(
        'post_type' => 'kosher',
        $current_query['taxonomy'] => $taxonomy_term
    );

    $the_query = new WP_Query( $args );

    if ( have_posts() ) : while ( $the_query -> have_posts() ) : $the_query -> the_post(); ?>   
    <?php 
        $values = get_field('brand');
    ?>
        <p><b><?php print_r($values); ?></b> &nbsp;<?php the_field('key'); ?> &nbsp;<?php the_title(); ?> &nbsp;<?php the_field( 'description' ); ?> </p>
        <?php endwhile; else: ?>
        <p>There are no posts or pages here</p>
<?php endif; ?>

以下是已编辑的代码,但仍会收到未定义的错误:

$args = array(
        'post_type' => 'kosher',
        $current_query['taxonomy'] => $taxonomy_term
    );

    $the_query = new WP_Query( $args );

    if ( have_posts() ) : while ( $the_query -> have_posts() ) : $the_query -> the_post(); ?>   
    <?php 
        $field = get_field_object('brand');
        $value = get_field('brand');
        $label = $field['choices'][ $value ];
    ?>
        <p><b><?php print_r($label); ?></b> &nbsp;<?php the_field('key'); ?> &nbsp;<?php the_title(); ?> &nbsp;<?php the_field( 'description' ); ?> </p>
        <?php endwhile; else: ?>
        <p>There are no posts or pages here</p>

我var_dump对象:

$field = get_field_object('brand');
var_dump($field);

以下是我所得到的,价值是herman jansen:HERMAN JANSEN,每次出现在我的前端的东西,我应该使用什么代码才能显示&#34; HERMAN JANSEN&# 34;

array(17) { 
["key"]=> string(19) "field_533221abdb3be" 
["label"]=> string(5) "Brand" 
["name"]=> string(5) "brand" 
["_name"]=> string(5) "brand" 
["type"]=> string(6) "select" 
["order_no"]=> int(3) 
["instructions"]=> string(0) "" 
["required"]=> int(0) 
["id"]=> string(15) "acf-field-brand" 
["class"]=> string(6) "select" 
["conditional_logic"]=> array(3) { 
    ["status"]=> int(0) 
    ["rules"]=> array(1) { 
        [0]=> array(2) { 
            ["field"]=> string(4) "null"
             ["operator"]=> string(2) "==" } } 
        ["allorany"]=> string(3) "all" } 
["choices"]=> array(4) { 
    ["BOLS"]=> string(4) "BOLS" 
    ["HERMAN JANSEN"]=> string(13) "HERMAN JANSEN" 
    ["WARNICKS"]=> string(9) "WARNICK'S" 
    ["CARLTON BLACK"]=> string(13) "CARLTON BLACK" } 
["default_value"]=> string(0) "" 
["allow_null"]=> int(0) 
["multiple"]=> int(0) 
["field_group"]=> int(140) 
["value"]=> string(28) "herman jansen: HERMAN JANSEN" }

1 个答案:

答案 0 :(得分:1)

使用get_field获取您的字段。

$variable = get_field('brand');
print_r($variable);

以这种方式打印$variable,您可以看到会有什么结果。

选择字段类型See Documents

从文档中,使用此: -

$field = get_field_object('brand');
$value = get_field('brand');
$label = $field['choices'][ $value ];

您好,

我注意到ACF中的奇怪事情。

您需要在ACF字段设置中指定选择选项,如下所示: -

`red : Red` instead of `red: Red`

您可能需要在:之前添加空格。

检查ACF设置中的选项。

这肯定有用。