在Woocommerce类别页面上显示自定义字段



我根据这里的一个问题创建了一个Woocommerce产品类别的自定义字段:

//Product Cat Edit page
function wh_taxonomy_edit_meta_field($term) {
//getting term ID
$term_id = $term->term_id;
// retrieve the existing value(s) for this meta field.
$wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="wh_meta_title"><?php _e('Meta Title', 'wh');  ?></label></th>
<td>
<input type="text" name="wh_meta_title" id="wh_meta_title" value="<?php echo  esc_attr($wh_meta_title) ? esc_attr($wh_meta_title) : ''; ?>">
<p class="description"><?php _e('Enter a meta title, <= 60 character', 'wh'); ?></p>
</td>
</tr>
<?php
}
add_action('product_cat_edit_form_fields', 'wh_taxonomy_edit_meta_field', 10, 1);
// Save extra taxonomy fields callback function.
function wh_save_taxonomy_custom_meta($term_id) {
$wh_meta_title = filter_input(INPUT_POST, 'wh_meta_title');
update_term_meta($term_id, 'wh_meta_title', $wh_meta_title);
}
add_action('edited_product_cat', 'wh_save_taxonomy_custom_meta', 10, 1);

我用这个来显示它:

add_action('wp_footer', 'insert_my_page_schemas');
function insert_my_page_schemas() {
if ( ! is_product_category() ) { 
return;
}
$wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);
if ( ! $wh_meta_title ) {
return;
}
echo '<script type="application/ld+json">'. $wh_meta_title .'</script>';
}

但是它没有被添加到页脚。我需要改变什么?

我尝试了上面的函数,在页脚没有显示任何东西,但是创建了字段。

$term_idinsert_my_page_schemas()中没有定义

你需要找到它。

$term_id = get_queried_object_id();
$wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);

这只适用于类别页面,而不适用于类别中的文章/产品。

最新更新