PHP wordpress使用复选框发布元

时间:2014-10-08 19:48:31

标签: php wordpress wordpress-theming

这可能是一个基本问题,但我有点迷失。 基本上,我试图在自定义帖子类型中创建一个复选框元状态。然后,我想检查是否已选中该复选框以更改我的主题中显示的内容。

所以这就是我所拥有的:

我的自定义课后:

function slide_box() {

    $slide_stored_meta = get_post_meta((int)$_REQUEST['post'] );

?>

<div>
<label for="slide-checkbox">
<input type="checkbox" name="slide-checkbox" id="slide-checkbox" value="yes" <?php if ( isset ( $slide_stored_meta['slide-checkbox'] ) ) checked( $slide_stored_meta['slide-checkbox'][0], 'yes' ); ?> />
<?php _e( 'Display Title and Excerpt?', 'prfx-textdomain' )?>
</label>
</div>

<?php
}

add_action('save_post','slide_save_meta');
function slide_save_meta($postID) {
    if ( is_admin() ) {

    // Checks for input and saves
    if( isset( $_POST[ 'slide-checkbox' ] ) ) {
            update_post_meta( $postID, 'slide-checkbox', 'yes' );
    } else {
            update_post_meta( $postID, 'slide-checkbox', 'no' );
    }

    }
}
?>

似乎保存好了,因为当我更新帖子时,它会在未选中时正确检查。

接下来我的主题模板文件:

<?php $slider = new WP_Query(array('post_type' => 'slide', 'posts_per_page'=>20, 'suppress_filters'=>0 )); ?>

            <?php if ($slider->have_posts()) : while($slider->have_posts()) : $slider->the_post(); ?>    

            **<?php if(get_post_meta($post->ID), 'slide-checkbox', true) { ?>**

1 个答案:

答案 0 :(得分:0)

为什么使用零指数? 尝试直接变量:

checked( $slide_stored_meta['slide-checkbox'], "yes")