1

Ich benutze alle in einem SEO-Pack-Plugin für Meta-Titel & Meta-Beschreibung für meine Website. Meine Website mit WooCommerce und All-in-One-SEO-Pack unterstützt nicht Meta-Titel & Meta-Beschreibung für WooCommerce-Kategorien-Seite.Wie Meta-Titel und Meta-Beschreibung in WooCommerce Kategorieseite hinzufügen

So habe ich unten Code verwendet, um benutzerdefinierte Felder für Meta-Titel & Meta-Beschreibung für WooCommerce-Kategorien im Admin-Bereich zu erstellen.

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

Der obige Code funktioniert perfekt im Adminbereich. Aber wie wird der eingegebene Meta Title & Meta Description am Frontend auf Kategorieseiten angezeigt?

Welche Hooks sollte ich in functions.php Datei hinzufügen, so dass es in Kategorie Seiten im Frontend angezeigt wird?

+0

verwenden Sie ein Seo-Plugin? –

+0

Ja alles in einem seo pack – Manoj

Antwort

2

Wie Sie All in One SEO verwenden, so dass keiner der wp Standardhaken/Filter arbeiten wie dieses Plugin den gesamten Titel ändert, so müssen Sie aioseop_title verwenden, Filter für Meta-Titel. und für Meta Beschreibung müssen Sie wp_head verwenden.

Für Meta Titel

add_filter('aioseop_title', 'wh_alter_pro_cat_title', 1); 

function wh_alter_pro_cat_title($title) 
{ 
    global $paged; 
    if (is_product_category()) 
    { 
     $page = get_query_var('page'); 
     if ($paged > $page) 
     { 
      $page = $paged; 
     } 

     $term = get_queried_object(); 
     $title = get_term_meta($term->term_id, 'wh_meta_title', true); 
     $title = !empty($title) ? $title : $term->name; 
     $page_part = (!empty($page) && ($page > 1)) ? ' | ' . 'Page ' . $page : ''; 
     $title .= ' | ' . get_bloginfo('name') . $page_part; 
    } 
    return $title; 
} 

Für Meta Beschreibung

add_action('wp_head', 'wh_alter_pro_cat_desc', 5); 

function wh_alter_pro_cat_desc() 
{ 
    if (is_product_category()) 
    { 
     $term = get_queried_object(); 
     $productCatMetaDesc = get_term_meta($term->term_id, 'wh_meta_desc', true); 
     if (empty($productCatMetaDesc)) 
      return; 

     ?> 
     <meta name="description" content="<?= $productCatMetaDesc; ?>"> 
     <?php 
    } 
} 

der Code geht in functions.php Alle Datei Ihrer aktiven Kind Thema (oder Thema). Oder auch in beliebigen Plugin-PHP-Dateien.
Codes ist getestet und funktioniert.

Hilfreiche Link:

hoffe, das hilft!

+0

Danke! Es hat funktioniert ... – Manoj

+0

Ich habe das gleiche Problem vor langer Zeit gesehen, als ich einen Woo Store für einen meiner Kunden entwickelte, und ich habe keine hilfreiche Lösung bekommen, also schrieb ich dieses Tutorial und beantworte es. und froh, dass es dir hilft. Vergiss nicht, meine Antwort anzunehmen und zu akzeptieren. –

+0

wurde bereits aktualisiert und akzeptiert – Manoj

0

bitte dies überprüfen:

// Display details on product category archive pages 
add_action('woocommerce_after_shop_loop', 
'wpm_product_cat_archive_add_meta'); 
function wpm_product_cat_archive_add_meta() { 
$t_id = get_queried_object()->term_id; 
$term_meta = get_option("taxonomy_$t_id"); 
$term_meta_content = $term_meta['custom_term_meta']; 
if ($term_meta_content != '') { 
echo '<div class="woo-sc-box normal rounded full">'; 
    echo apply_filters('the_content', $term_meta_content); 
echo '</div>'; 
} 
} 

danke

+0

danke für die Hilfe, aber hat nicht funktioniert – Manoj

0

Sie können mithilfe der folgenden Haken benutzerdefinierten Meta-Titel und Meta-Beschreibung auf Frontend angezeigt werden soll.

add_action('woocommerce_after_shop_loop','display_custom_meta_info'); 
    function display_custom_meta_info(){ 
     global $wp_query; 
     $cat_obj = $wp_query->get_queried_object(); 
     $title_meta = get_term_meta($cat_obj->term_id 
    ,'wh_meta_title',true); 
     $desc_meta = get_term_meta($cat_obj->term_id 
    ,'wh_meta_desc',true); 

     $woocommerce_taxonomy_archive_description = $title_meta.$desc_meta; 

return $woocommerce_taxonomy_archive_description; 

    } 

Sie können jederzeit andere Haken verwenden, um die Anzeige von metas zu ändern, indem Sie den folgenden template structure

+0

Hallo, vielen Dank für Ihre Hilfe, aber es funktioniert nicht – Manoj

+0

Immer noch kein Glück .. – Manoj

+0

überprüfen Sie diesen Code innerhalb, Archiv-Produkt.php global $ wp_query; $ cat_obj = $ wp_query-> get_queried_object(); $ title_meta = get_post_meta ($ cat_obj-> begriff_id; , 'wh_meta_title', true); $ desc_meta = get_post_meta ($ cat_obj-> begriff_id; , 'wh_meta_desc', true); Echo der $ title_meta und desc_meta –

Verwandte Themen