我正在尝试将“价格范围”下拉选项添加到我的自定义帖子类型中的元框中。有三种选择:$ / $$ / $$$
以下是我目前用于创建选择框的内容:
<p>
<label for="price_range" class="prfx-row-title"><?php _e( 'Price Range', 'prfx-textdomain' )?></label><br/>
<select type="text" name="price_range" id="website_url" value="<?php if ( isset ( $prfx_stored_meta['price_range'] ) ) echo $prfx_stored_meta['price_range'][0]; ?>" />
<option>$</option>
<option>$$</option>
<option>$$$</option>
</select>
</p>
以下是我目前用来保存选择框的内容:
if( isset( $_POST[ 'price_range' ] ) ) {
update_post_meta( $post_id, 'price_range', sanitize_text_field( $_POST[ 'price_range' ] ) );
}
选择框在WP中显示正常,但在我发布帖子时它不会保存我的选择。
最后,我需要在页面模板中显示价格范围:
<!-- DISPLAY PRICE RANGE IF ONE EXISTS -->
<?php if ( get_post_meta($post->ID, 'price_range', true) ) { ?>
<strong>Price Range: </strong>
<?php $meta_value = get_post_meta( get_the_ID(), 'price_range', true ); // Retrieves the stored value from the database
if( !empty( $meta_value ) ) { // Checks and displays the retrieved value
echo $meta_value;
}
?>
<?php } ?>
我还没有测试过这个,因为我没有成功保存我的价格范围元 - 但这会有效吗?
答案 0 :(得分:0)
您必须添加保存条目时执行的功能
add_action( 'save_post', 'save_custom_meta' );
function save_custom_meta( ) {
global $post;
if( isset( $_POST[ 'price_range' ] ) ) {
update_post_meta( $post->ID, 'price_range', sanitize_text_field( $_POST[ 'price_range' ] ) );
}
}
答案 1 :(得分:0)
我找到了我错的地方:
<p>
<label for="meta-select" class="prfx-row-title"><?php _e( 'Example Select Input', 'prfx-textdomain' )?></label>
<select name="meta-select" id="meta-select">
<option value="select-one" <?php if ( isset ( $prfx_stored_meta['meta-select'] ) ) selected( $prfx_stored_meta['meta-select'][0], 'select-one' ); ?>><?php _e( 'One', 'prfx-textdomain' )?></option>';
<option value="select-two" <?php if ( isset ( $prfx_stored_meta['meta-select'] ) ) selected( $prfx_stored_meta['meta-select'][0], 'select-two' ); ?>><?php _e( 'Two', 'prfx-textdomain' )?></option>';
</select>
然后:
if( isset( $_POST[ 'price_range' ] ) ) {
update_post_meta( $post_id, 'price_range', $_POST[ 'price_range' ] );
}