0

もう一度、解決方法がわからない問題に直面しています。

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)." />";
}

編集ページが保存/更新されたときにチェックボックスの選択を保存すると思われる下に追加する必要がある 2 つ目のコードがあります。

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

ただし、コードの 2 番目の部分が含まれているページを実行しようとすると、行にエラーがあったことが通知されます。 update_post_meta(esc_attr($page_id, '_featured-product', esc_attr($_REQUEST['featured-product']));

なぜこれが機能しないのか、そして私が変更したことがまったく正しいかどうかを誰かが理解するのを手伝ってくれれば幸いです。

また、ホームページでこの選択したページのタイトルをエコーアウトする最も簡単で最良の方法は何でしょうか?

4

1 に答える 1

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');
于 2013-03-11T15:58:12.270 に答える