1

我使用以下代码在 WordPress 页面(在管理部分)中创建了一个复选框:

<?php while($mb->have_fields_and_multi('sidebar-block')): ?>
<?php $mb->the_group_open(); ?>

    <!-- Some more code here for other fields -->

    <p class="checkbox">
    <input name="<?php $metabox->the_name('blue-block'); ?>" type="checkbox" value="1" <?php if ($metabox->get_the_value('blue-block')) echo ' checked="checked"'; ?>>
    <label>Do not use Blue Block for content</label>
    </p>

<?php $mb->the_group_close(); ?>
<?php endwhile; ?>

上面的代码工作正常。我的问题是如何检查是否在主网站(前端)上选中了此复选框?

以下是我的前端模板中的代码:

<?php
    $my_meta = get_post_meta($post->ID,'_sidebar_meta',TRUE);
    if ($my_meta['sidebar-block']) {
    foreach ($my_meta['sidebar-block'] as $sidebar)
    {
?>
<div id="aside-blue">
    <?php if ($sidebar['side_heading']) { ?>
        <h2 class="sideheading"><?php echo $sidebar['side_heading']; ?></h2>
    <?php } ?>
    <?php echo apply_filters( 'the_content', $sidebar['side_content'] ); ?>
</div>
<?php } ?>
<?php } ?>

我只想id="aside-blue"在选中复选框时添加。


我为此尝试了以下代码,但它不起作用

<?php
    $my_meta = get_post_meta($post->ID,'_sidebar_meta',TRUE);
    if ($my_meta['sidebar-block']) {
    foreach ($my_meta['sidebar-block'] as $sidebar)
    {
?>

<div <?php if ($sidebar['blue-block'] == 'yes') { ?>id="aside-blue"<?php } ?>>

</div>
<?php } ?>
<?php } ?>
4

1 回答 1

0

检查 wp_postmeta 表中值的存储方式。当我使用复选框时,值是序列化的。在使用元值之前,您可能需要对其进行反序列化。

于 2012-09-04T13:08:11.473 回答