我再次遇到一个我不知道如何解决的问题。
我正在尝试在wordpress的页面编辑屏幕中添加一个标有“特色产品”的自定义复选框。我们的想法是,当前打勾的产品页面都会在网站的主页上显示其信息。
我是wordpress和PHP的新手。我过去48小时都在学习PHP,使用“Tutsplus - PHP essentials”,显然这个网站。
我找到了这段代码,我将其修改并添加到我的主题的function.php中,该代码将复选框放在页面编辑屏幕中。
function register_post_assets(){
add_meta_box('featured-product', __('Featured Product'), 'add_featured_meta_box', 'page', 'advanced', 'high');
}
add_action('admin_init', 'register_post_assets', 1);
function add_featured_meta_box($post){
$featured = get_post_meta($post->ID, '_featured-product', true);
echo "<label for='_featured-product'>".__('Feature this product?')."</label>";
echo "<input type='checkbox' name='_featured-product' id='featured-product' value='1' ".checked(1, $featured)." />";
}
下面需要添加第二段代码,我认为是在保存/更新编辑页面时保存复选框选项。
function save_featured_meta($post_id){
if(isset($_REQUEST['featured-product']))
update_post_meta(esc_attr($post_id, '_featured-product', esc_attr($_REQUEST['featured-product']));
}
add_action('save_post', 'save_featured_meta');
但是每当我尝试运行包含第二段代码的页面时,我都会收到通知,说明该行有错误
update_post_meta(esc_attr($page_id, '_featured-product', esc_attr($_REQUEST['featured-product']));
如果有人能帮助我弄清楚为什么这样做不起作用,如果我所做的改变是对的,我会很感激。
那么在主页上回显这个选择页面标题的最简单/最好的方法是什么呢?
答案 0 :(得分:0)
尝试
function save_featured_meta($post_id){
if(isset($_REQUEST['featured-product']))
update_post_meta( $post_id, '_featured-product', esc_attr($_REQUEST['featured-product']));
}
add_action('save_post', 'save_featured_meta');