我根据这里的一个问题创建了一个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_id
在insert_my_page_schemas()
中没有定义
你需要找到它。
$term_id = get_queried_object_id();
$wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);
这只适用于类别页面,而不适用于类别中的文章/产品。