2013-03-10 119 views
0

我再次遇到了一个我不知道如何解决的问题。在页面编辑中添加自定义元复选框

我试图在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']));

我会很感激的一个错误,如果有人可以帮助我弄清楚为什么这不起作用,如果我所改变的是完全正确的。

此外,那么最简单/最好的方式来在主页上回显此选择页面的标题?

+0

我已经写了这个相当多的答案,你会发现很多在[wordpress.se]工作的例子,看看这个搜索:http://wordpress.stackexchange.com/search?q =%2Badd_meta_box +%2Bsave_post + is%3Aanswer – brasofilo 2013-03-10 20:37:24

回答

0

尝试

​​
+0

嗨,感谢您的回复。我昨天看了一些更多的例子,最后进行排序。今天早上带我到凌晨2点,但这很有趣,也令人沮丧。 – 2013-03-11 19:40:37