我使用所有在一个搜索引擎优化包插件为Meta标题和Meta描述我的网站。我的网站有WooCommerce和所有在一个SEO包不支持Meta标题和Meta描述WooCommerce类别页面。
所以我用下面的代码来创建自定义字段的Meta标题和Meta描述WooCommerce类别在管理区。
function wh_taxonomy_add_new_meta_field() {
?>
<div class="form-field">
<label for="wh_meta_title"><?php _e('Meta Title', 'wh'); ?></label>
<input type="text" name="wh_meta_title" id="wh_meta_title">
<p class="description"><?php _e('Enter a meta title, <= 60 character', 'wh'); ?></p>
</div>
<div class="form-field">
<label for="wh_meta_desc"><?php _e('Meta Description', 'wh'); ?></label>
<textarea name="wh_meta_desc" id="wh_meta_desc"></textarea>
<p class="description"><?php _e('Enter a meta description, <= 160 character', 'wh'); ?></p>
</div>
<?php
}
//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);
$wh_meta_desc = get_term_meta($term_id, 'wh_meta_desc', 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>
<tr class="form-field">
<th scope="row" valign="top"><label for="wh_meta_desc"><?php _e('Meta Description', 'wh'); ?></label></th>
<td>
<textarea name="wh_meta_desc" id="wh_meta_desc"><?php echo esc_attr($wh_meta_desc) ? esc_attr($wh_meta_desc) : ''; ?></textarea>
<p class="description"><?php _e('Enter a meta description', 'wh'); ?></p>
</td>
</tr>
<?php
}
add_action('product_cat_add_form_fields', 'wh_taxonomy_add_new_meta_field', 10, 1);
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');
$wh_meta_desc = filter_input(INPUT_POST, 'wh_meta_desc');
update_term_meta($term_id, 'wh_meta_title', $wh_meta_title);
update_term_meta($term_id, 'wh_meta_desc', $wh_meta_desc);
}
add_action('edited_product_cat', 'wh_save_taxonomy_custom_meta', 10, 1);
add_action('create_product_cat', 'wh_save_taxonomy_custom_meta', 10, 1);
上面的代码在管理区工作得很好。但是如何在分类页面的前端显示输入的Meta Title和Meta Description?
我应该在functions.php
文件中添加什么钩子,以便它在前端的类别页面中显示?
4条答案
按热度按时间xzv2uavs1#
由于您使用的是All in One SEO,所以wp默认的钩子/过滤器都不会工作,因为这个插件修改所有的标题,所以您必须使用
aioseop_title
,过滤器为Meta Title。对于Meta描述,必须使用wp_head
。对于Meta标题
对于Meta描述
functions.php
文件中。或者在任何插件php文件中。*代码经过测试并有效。
有用链接Adding custom field to product category in WooCommerce
6pp0gazn2#
你可以使用下面的钩子在前端显示自定义的Meta title和meta description。
您始终可以使用其他钩子来修改元的显示,方法是遵循template structure
zqry0prt3#
06odsfpq4#
请尝试将此代码作为其工作文件。 对于Meta Title*
对于Meta描述