我已经完成了替代标题的面包屑的开发。
我的代码在下面..
/*
* Custom title for category
*/
add_action('product_cat_add_form_fields','custom_taxonomy_add_new_meta_field', 10, 1);
//admin side extra field
function custom_taxonomy_add_new_meta_field() {
?>
<div class="form-field">
<label for="alternative_title"><?php _e('Alternative Title', 'store-front-child'); ?></label>
<input type="text" name="alternative_title" id="alternative_title">
<p class="description"><?php _e('Enter Alternative Title for Breadcrumb', 'store-front-child'); ?></p>
</div>
<?php
}
add_action('product_cat_edit_form_fields', 'custom_taxonomy_edit_meta_field', 10, 1);
//admin side extra field when edit
function custom_taxonomy_edit_meta_field($term) {
$term_id = $term->term_id;
$alternative_title = get_term_meta($term_id, 'alternative_title', true);
$alternative_slug = get_term_meta($term_id, 'alternative_slug', true);
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="alternative_title"><?php _e('Alternative Title', 'store-front-child'); ?></label></th>
<td>
<input type="text" name="alternative_title" id="alternative_title" value="<?php echo esc_attr($alternative_title) ? esc_attr($alternative_title) : ''; ?>">
<p class="description"><?php _e('Enter Alternative Title for Breadcrumb', 'store-front-child'); ?></p>
</td>
</tr>
<?php
}
add_action('edited_product_cat', 'custom_save_taxonomy_custom_meta', 10, 1);
add_action('create_product_cat', 'custom_save_taxonomy_custom_meta', 10, 1);
//save alternative title to database
function custom_save_taxonomy_custom_meta($term_id) {
$alternative_title = filter_input(INPUT_POST, 'alternative_title');
update_term_meta($term_id, 'alternative_title', $alternative_title);
}
add_filter( 'woocommerce_get_breadcrumb', 'custom_change_breadcrumb' );
//filter the woocommerce breadcrub text for category
function custom_change_breadcrumb( $crumbs ) {
global $post;
echo $post->id;
$new_crumb_array = array();
if( !empty( $crumbs ) ):
foreach ( $crumbs as $crumb ):
$new_crumb = array();
$new_crumb[0] = $crumb[0];
$new_crumb[1] = $crumb[1];
$cat = get_term_by( 'name', $crumb[0], 'product_cat' );
$alternative_title = get_term_meta( $cat->term_id, 'alternative_title', true );
if( !empty( $alternative_title ) ){
$new_crumb[0] = $alternative_title;
}
$new_crumb_array[] = $new_crumb;
endforeach;
endif;
return $new_crumb_array;
}