我再次遇到了一个我不知道如何解决的问题。在页面编辑中添加自定义元复选框
我试图在WordPress的页面编辑屏幕上添加一个标记为“精选产品”的自定义复选框。这个想法是,无论哪个产品页面当前有这个勾号将其信息显示在网站的主页上。
我对wordpress和PHP完全陌生。我只使用“Tutsplus - PHP essentials”和显然这个网站在过去的48小时学习PHP。
我已经找到了这段代码,我修改并添加到我的主题的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']));
我会很感激的一个错误,如果有人可以帮助我弄清楚为什么这不起作用,如果我所改变的是完全正确的。
此外,那么最简单/最好的方式来在主页上回显此选择页面的标题?
我已经写了这个相当多的答案,你会发现很多在[wordpress.se]工作的例子,看看这个搜索:http://wordpress.stackexchange.com/search?q =%2Badd_meta_box +%2Bsave_post + is%3Aanswer – brasofilo 2013-03-10 20:37:24