WordPress自定义域(具有多个值的复选框)

时间:2013-07-16 作者:Brandon

我目前使用的是一种自定义帖子类型,带有一个作为复选框的自定义字段。复选框中有多个值,包括:笔记本电脑、新建、无营销文本等。如果没有营销文本是唯一选择的文本,那么它在执行我希望它执行的操作时没有问题。如果选中了多个复选框,则只查看第一个选中的复选框。即使选中了多个复选框,我应该更改什么以使其工作?

<?php

      //REMOVES BACK TO TOP BUTTON FOR PROGRAMS THAT HAVE NO MARKETING BLURB - JUNE 27, 2013 - Brandon Carson

    if("No-marketing-text" == get_post_meta($post->ID, \'program_flags\', true)){

            echo "";

        }else{
            echo "<div class=\'content-block\'>";

            the_content();

        echo "<a class=\'back-to-top-link\' href=\'#top\'>Back to Top</a></div>";


        }

    ?>

1 个回复
SO网友:Johannes Pille

在这样的前提下,您的数据库条目确实得到了正确保存,并且您的问题仅在检索时出现:

如果选择了多个框,则值应作为序列化数组存在于数据库中<幸运的是,get_post_meta 为我们取消序列化,但它们仍然是数组
因此,您的条件应该这样修改:

$program_flags = get_post_meta( $post->ID, \'program_flags\', true );

if(
    \'No-marketing-text\' === $program_flags
    ||
    ( is_array( $program_flags ) && in_array( \'No-marketing-text\', $program_flags ) )
){
    // do your thing
}

结束