我又遇到了一个我不知道如何解决的问题。
我正在尝试在 wordpress 的页面编辑屏幕中添加一个标有“特色产品”的自定义复选框。这个想法是,当前选中此选项的任何产品页面都将在网站主页上显示其信息。
我对 wordpress 和 PHP 完全陌生。在过去的 48 小时里,我一直在使用“Tutsplus - PHP Essentials”和显然这个网站学习 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']));
如果有人能帮助我弄清楚为什么这不起作用,以及我所做的改变是否完全正确,我将不胜感激。
那么在主页上呼应这个选择页面的标题的最简单/最好的方法是什么?