संग्रह टेम्पलेट में Yoast वर्डप्रेस एसईओ शीर्षक प्रदर्शित करें


14

Yoast द्वारा वर्डप्रेस एसईओ प्लगइन उपयोगकर्ताओं को टैक्सोनॉमी शब्द संग्रह पृष्ठों पर एसईओ शीर्षक और मेटा विवरण जोड़ने की अनुमति देता है। ये तब दस्तावेज़ के प्रमुख में उपयोग किए जाते हैं।

मैं अपने टैक्सोनॉमी आर्काइव टेम्प्लेट में H1 के रूप में टैक्सोनॉमी शर्तों के एसईओ शीर्षक को प्रदर्शित करने की कोशिश कर रहा हूं।

पोस्ट में ऐसा करने के लिए, पोस्ट टाइप या पेज आसान है:

echo get_post_meta($post->ID, '_yoast_wpseo_title', true); 

संग्रह टेम्पलेट्स पर यह काम नहीं करता है।

क्या किसी को पता है कि यह काम करने के लिए कैसे प्राप्त करें?

स्क्रीनशॉट उदाहरण

यह एक विशिष्ट टैग शब्द का शीर्षक है। मैं इस शीर्षक को प्रदर्शित करने की कोशिश कर रहा हूं - लेकिन फिर मेरे संग्रह टेम्पलेट्स में एक कस्टम टैक्सोनॉमी शब्द के लिए।

टैग संग्रह स्क्रीन संपादित करें

अंतिम कोड

यह वह है जो मैंने अपने archive.phpटेम्पलेट में उपयोग करके समाप्त किया है । यह काम करता है अगर आप एक कस्टम वर्गीकरण का उपयोग कर रहे हैं। टैग या श्रेणियों के लिए नीचे माइक Madern´s जवाब पर एक नज़र है।

<h1 class="archive-title">
<?php
if ( is_tax() ) :                                                                   
    $taxonomy = get_queried_object()->taxonomy;
    $term_id = get_queried_object()->term_id;
    $meta   = get_option( 'wpseo_taxonomy_meta' );
    $title  = $meta[$taxonomy][$term_id]['wpseo_title'];
    //printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
    if ( isset($meta) && !empty($title) ) :         
        echo apply_filters( 'the_title', $title );
    else :
        single_term_title();    
    endif;
endif;                              
?>
</h1>  

जवाबों:


19

पुरालेख एसईओ शीर्षक प्राप्त करें

यदि आपने एक कस्टम पोस्ट प्रकार संग्रह शीर्षक परिभाषित किया है, तो आप इसे प्राप्त कर सकते हैं:

$titles = get_option( 'wpseo_titles' );
$title  = $titles['title-ptarchive-POST_TYPE'];

echo apply_filters( 'the_title', $title );

POST_TYPEअपने स्वयं के कस्टम पोस्ट प्रकार द्वारा प्रतिस्थापित करना याद रखें ।

सभी wpseo_titleचर दिखाने के लिए , आप उपयोग कर सकते हैं:

printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_titles' ), 1 ) );

इसलिए आप अपनी जरूरत का सामान आसानी से उठा सकते हैं।

टर्म एसईओ शीर्षक प्राप्त करें

श्रेणियाँ

इस कोड का उपयोग करके आप परिभाषित एसईओ शीर्षक प्राप्त कर सकते हैं:

$cat_id = get_query_var( 'cat' );
$meta   = get_option( 'wpseo_taxonomy_meta' );

$title  = $meta['category'][$cat_id]['wpseo_title'];

echo apply_filters( 'the_title', $title );

टैग

इस कोड का उपयोग करके आप परिभाषित एसईओ शीर्षक प्राप्त कर सकते हैं:

$tag_id = get_query_var( 'tag' );
$meta   = get_option( 'wpseo_taxonomy_meta' );

$title  = $meta['post_tag'][$tag_id]['wpseo_title'];

echo apply_filters( 'the_title', $title );

सभी wpseo_taxonomy_metaचर प्रदर्शित करने के लिए , आप उपयोग कर सकते हैं:

printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );

इस तरह आप संरचना और उपलब्ध चर देख सकते हैं।


आपने एसईओ > शीर्षक और मेटा > पोस्ट प्रकार में शीर्षक जोड़ा ?
माइक मैडर्न

मैंने समाधान के साथ अपना जवाब सुधार दिया :-)
माइक मैडर्न

मैं अनुमान लगा रहा हूं कि आपने मेरी पिछली पोस्ट संपादित की: -I ने एक संस्करण जोड़ा $tag_id
माइक मैडर्न

1
कोड के लिए बहुत बहुत धन्यवाद, I´d कभी भी यह पता लगाने में सक्षम नहीं होगा। मैंने इसे कस्टम टैक्सोनॉमीज़ के साथ काम करने के लिए कुछ मामूली बदलाव किए।
मैटविक

यह भी खूब रही। मुझे इसका उपयोग करना था get_queried_object()->term_id, get_query_var()हालांकि , इसके बजाय , जैसा कि पूर्व आईडी देता है, बाद वाला स्लग देता है, जिससे कोड को "अपरिभाषित सूचकांक" नोटिस बना दिया जाता है। यह भी ध्यान रखें कि अगर वहाँ कुछ भी निर्धारित नहीं है, तो जाँच लें $meta['post_tag|category']क्योंकि आपको अपरिभाषित सूचकांक नोटिस भी मिलेंगे। (WP 4.2.2, btw)
कैबफेक्स

5

पोस्ट लूप में आर्काइव पेज पर यह काम करने के लिए कोड की निम्नलिखित पंक्ति जोड़ें

echo get_post_meta(get_the_ID(), '_yoast_wpseo_title', true); 

मुझे बताओ कि क्या यह आपके लिए काम कर रहा है या मैं एक और समाधान प्रदान करेगा।


यह दुर्भाग्य से काम नहीं आया। यह आर्काइव में पहली पोस्ट का एसईओ शीर्षक दिखाता है। Ill को संभवतः DB में गोता लगाना होगा, यह देखने के लिए कि यह डेटा कहाँ संग्रहीत है।
मटकाव

क्या आप इसे लूप में उपयोग कर रहे हैं? क्या आप मुझे कोड दिखा सकते हैं?
विनोद दलवी

मैंने अपना कोड जोड़ा। यकीन नहीं होता अगर मैंने समझाया कि मैं पृष्ठ शीर्षक का उत्पादन करना चाहता था, लूप में प्रत्येक पोस्ट के शीर्षक नहीं।
मैटवीक Matt

यही वह है जिसकी तलाश में मैं हूं। लूप में एसईओ शीर्षक आउटपुट। इसके अलावा, मैंने get_the_ID () $ पोस्ट-> ID
gerbz

इससे मेरी जान बचती है। अच्छा ..
मुकी कुमार

0

श्रेणियों और टैग के लिए फ़ोकस कीवर्ड प्राप्त करना

प्रोग्राम या टैग प्रोग्राम का फ़ोकस कीवर्ड प्राप्त करने के लिए , आप इन दोनों विधियों में से किसी एक का उपयोग कर सकते हैं:

            /** Method 1. Tap into the options directly. **/
            $meta = get_option( 'wpseo_taxonomy_meta' ); // needed only once, so keep this outside/before your foreach loop.

            $posttags = get_the_tags();
            if ($posttags) {
                foreach( $posttags as $tag ) {
                    echo $meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
                }
            }

यह मूल रूप से माइक द्वारा अपनी पोस्ट के अंत में उपयोग किया जाने वाला दृष्टिकोण है।

या

            /** Method 2. Use Yoast's function. **/
            $posttags = get_the_tags();
            if ($posttags) {
                foreach( $posttags as $tag ) {
                    echo WPSEO_Taxonomy_Meta::get_term_meta( $tag->term_id, 'post_tag', 'focuskw' );
                }
            }

मैं दूसरे दृष्टिकोण को प्राथमिकता देता हूं क्योंकि इस तरह मुझे खुद को मेटा विकल्प प्राप्त करने के बारे में जानकारी प्राप्त करने या देखभाल करने की आवश्यकता नहीं है।

अपने में functions.php, आप के लिए परीक्षण करने के लिए चाहते हो सकता है if class_exists( 'WPSEO_Taxonomy_Meta' )हो सकता है और फिर अपने खुद की एक functon में Yoast समारोह लपेटो, मामला क्या तुमने कभी लाइन नीचे Yoast एसईओ का उपयोग बंद करने थे में सुरक्षित किया जाना है।

कुछ पृष्ठभूमि

जैसा कि मूल प्रश्न में उल्लेख किया गया है, कुछ ऐसा है जो get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);श्रेणियों और पृष्ठों के लिए काम नहीं करेगा (यह कुछ भी नहीं लौटाएगा।)

तो वह क्यों है?

ऐसा इसलिए, क्योंकि श्रेणियों और टैगों के लिए, फ़ोकस कीवर्ड डेटाबेस में कहीं और सहेजा जाता है। wp_postmetaहमेशा की तरह तालिका के अंदर सहेजे जाने के बजाय , इसे wp_optionsJSON ऑब्जेक्ट के रूप में तालिका के अंदर गहरे दफन किया गया है ।

ऊपर दिए गए तरीके हमें इन मूल्यों तक पहुंचने देते हैं।


अंत में, यदि आप मेरे जैसे हैं और टैक्सोनोमीज़ का नाम याद नहीं कर सकते हैं (उदाहरण के लिए: यह स्पष्ट नहीं है कि टैग टैक्सोनॉमी का उपयोग क्यों करते हैं post_tagऔर न कि सिर्फ tag, जब आप किसी श्रेणी या टैग को संपादित करते हैं तो URL की जाँच करें: यह दिखाएगा …taxonomy=category…या पसन्द।


0

उत्तर श्रेणियों और टैग के लिए फ़ोकस कीवर्ड प्राप्त करना

// यह थैंक्यू काम करता है
// बाकी आपी के साथ

get / wp-json / wp / v2 / श्रेणियाँ? स्लग =slug_name

plugin.in विधि 1 का उपयोग करें

परिवर्तन लाइन

$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];

$meta['category'][$param_post_id]['wpseo_focuskw'];

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.