【问题标题】:add custom meta checkbox in page edit在页面编辑中添加自定义元复选框
【发布时间】:2013-03-11 23:58:12
【问题描述】:

我又遇到了一个我不知道如何解决的问题。

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

如果有人能帮助我弄清楚为什么这不起作用,以及我所做的更改是否正确,我将不胜感激。

那么在主页上呼应此选择页面的标题的最简单/最佳方式是什么?

【问题讨论】:

标签: php wordpress meta-boxes


【解决方案1】:

试试

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');

【讨论】:

  • 您好,感谢您的回复。昨天我又看了一些例子,最后把它分类了。今天早上带我到凌晨 2 点,但它既有趣又令人沮丧。
猜你喜欢
  • 2019-07-06
  • 2016-08-12
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多