चाइल्ड थीम में Header.php में कोड कैसे जोड़ें?


18

मैं पहली बार चाइल्ड थीम बना रहा हूं और हेडर में जोड़े गए कोड के बारे में मेरे कुछ सवाल थे।

एक गैर-बाल विषय में कुछ कोड है जो मैं अपने शीर्ष लेख में जोड़ता हूं। जैसे कि Google विश्लेषिकी, Google वेबमास्टर उपकरण, विज्ञापन बेचना, फेसबुक खुला ग्राफ, आदि ...।

बाल विषय में आप यह कैसे करते हैं? क्या आप अपने बच्चे के विषय में एक हैडर.फपी फाइल बनाते हैं? यदि हां, तो यह कैसे किया जाता है? क्या यह @import जैसा ही है जैसा मैंने css में इस्तेमाल किया था?

धन्यवाद।

जवाबों:


24

मैं wp_headकार्रवाई में हुक होगा । मैं इसे एक प्लगइन में रखूँगा ताकि इसे आपकी प्रस्तुति परत से अलग किया जा सके। यह स्केलेबिलिटी और थीम बदलने की अनुमति देता है। यह किसी भी विश्लेषिकी संपार्श्विक क्षति को रोकता है यदि एक विषय से दूसरे में प्रवासन में एक चरण छूट जाता है।

add_action('wp_head', 'wpse_43672_wp_head');
function wpse_43672_wp_head(){
    //Close PHP tags 
    ?>
    ADD YOUR PLAIN HTML CODE HERE
    <?php //Open PHP tags
}

धन्यवाद। मुझे प्लग बनाने का कोई अनुभव नहीं है। मेरे पास लगभग 5 टुकड़े हैं जिन्हें मैं हेडर में जोड़ना चाहता हूं। क्या मुझे उनमें से प्रत्येक के लिए एक प्लग बनाने की आवश्यकता होगी?
रिक स्मिथ

@RickSmith मैंने उपर्युक्त पद के लिए प्लगइन प्रारूप जोड़ा
ब्रायन फीगर

4
चाहे पेरेंट थीम, चाइल्ड थीम, या किसी भी थीम का उपयोग किया जा रहा हो, सही तरीका यह है कि इस तरह के कोड को कॉलबैक में डाल दिया जाए, जो उचित कार्रवाई हुक में शामिल हो। आप विषय के दशक में इस कोड डाल सकता है functions.phpऔर भी बेहतर फ़ाइल, या, और के रूप में ब्रायन का सुझाव दिया है, में रख एक साइट विशिष्ट प्लगइन
चिप बेनेट

1
@BrianFegter इस के साथ मेरी मदद करने के लिए समय निकालने के लिए धन्यवाद। यहाँ एक पेस्ट बिन है, मुझे लगता है कि मैं अभी भी कुछ गलत कर रहा हूं। :) pastebin.com/iT0bJjGE
रिक स्मिथ


4

हेडर को चाइल्ड थीम में मॉडिफाई करने के लिए, हेडर थीम से हेडर को चाइल्ड थीम में कॉपी करें और फिर उसे संशोधित करें। वर्डप्रेस यह देखेगा कि आपके बच्चे के विषय में एक शीर्ष लेख है

आपके द्वारा अपने बच्चे की थीम में डाली गई कोई भी टेम्प्लेट फाइल पैरेंट थीम में उसी फाइल पर प्राथमिकता लेगी जब वर्डप्रेस द्वारा कॉल किया जाता है।

कुछ भी जो टैग में जाता है, उसे ब्रान्स उत्तर में फ़ंक्शन जैसे कुछ का उपयोग करके किया जाना चाहिए। यदि यह विषय विशिष्ट है, तो आप इसे बिना किसी अतिरिक्त चरणों के अपने विषय फ़ोल्डर में फ़ंक्शन.php नामक फ़ाइल में रख सकते हैं।


टॉम, धन्यवाद। इसलिए अगर मुझे शीर्ष लेख के 5 अलग-अलग स्निप को हैडर में स्थापित करने की आवश्यकता है। तो क्या मैं सिर्फ एक प्लगइन बना सकता हूं और इसे स्थापित कर सकता हूं? क्या मुझे अभी भी अपने बाल विषय में हैडर.फपी फाइल की प्रतिलिपि बनाने की आवश्यकता होगी?
रिक स्मिथ

हाँ वहाँ 5 प्लगइन्स बनाने के लिए कोई कारण नहीं है
टॉम जम्मू नॉवेल

@ रिकमिथ यदि आप एक प्लगइन को अमूर्त कर रहे हैं, तो शीर्ष लेख पर कॉपी करने का कोई कारण नहीं है। :)
ब्रायन फीगर

2
इस समाधान के साथ समस्या यह है कि जब विषय को अपडेट किया जाता है, तो आप लेखक द्वारा किए गए शीर्ष लेख में सुधार को याद करेंगे।
X

2

ब्रायन फीगर को धन्यवाद । यदि यह उत्तर मदद करता है, तो कृपया यहां ऊपर ब्रायन के उत्तर के लिए रेट करें।

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

बस नमूना कोड की शुरुआत में "प्लगइन स्क्रिप्ट" में निर्दिष्ट नाम के साथ एक PHP फ़ाइल बनाएं, इसे एक्सटेंशन के बिना समान नाम वाले फ़ोल्डर में रखें, और इस फ़ोल्डर को गंतव्य पर कॉपी करें "/ wp-content / प्लग इन "।

फिर "वर्डप्रेस" के भीतर, "प्लगइन्स" को ताज़ा करें और आप अपने नए प्लगइन को स्थापित देखेंगे। बस इसे सक्रिय करें, और आपके पृष्ठों में ओपन ग्राफ़ फेसबुक और ट्विटर के मेटाडेटा सम्‍मिलित होने लगेंगे।

यहां छवि विवरण दर्ज करें

बहुत महत्वपूर्ण: PHP फ़ाइल को बिना BOM के UTF-8 में एन्कोड किया जाना चाहिए, और अंत में बिल्कुल कोई वर्ण नहीं होना चाहिए। यह सुनिश्चित करना चाहिए।

<?php
/*
    Plugin Name: My Facebook Open Graph Protocol
    Plugin Script: my-facebook-open-graph-protocol.php
    Plugin URI: 
    Description: Add Facebook Open Graph Protocol to header
    Author: Diego Soto (Thanks to Brian Fegter)
    Donate Link: 
    License: GPL    
    Version: 0.1-alpha
    Author URI: /wordpress/43672/how-to-add-code-to-header-php-in-a-child-theme
    Text Domain: myfogp
    Domain Path: languages/
*/

/*  Copyright 2014 Diego Soto  (http://disientoconusted.blogspot.com.ar/)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

add_action('wp_head', 'wpse_43672_wp_head');

function wpse_43672_wp_head(){
    $title = get_the_title() ." &lsaquo; ". get_bloginfo( "name", "display" );

    $src = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), array( 90,55 ), false, "" ); 

    $face_metad = get_post_meta(get_the_ID(), "metadescription", true);

    $twitter_metad = get_post_meta(get_the_ID(), "metadescription140", true);
    if (empty($twitter_metad)) 
        $twitter_metad = $face_metad;

    //Close PHP tags 
    ?>    
    <meta property="og:title" content="<?php echo esc_attr($title); ?>" />
    <meta property="og:image" content="<?php echo esc_attr($src[0]); ?>" />
    <meta property="og:url" content="<?php the_permalink(); ?>" />
    <meta property="og:description" content="<?php if (!empty($face_metad)) echo esc_attr($face_metad); else the_excerpt(); ?>" />

    <meta name="twitter:title" content="<?php echo esc_attr($title); ?>" />
    <meta name="twitter:image" content="<?php echo esc_attr($src[0]); ?>" />    
    <meta name="twitter:url" content="<?php the_permalink(); ?>" />
    <meta name="twitter:description" content="<?php if (!empty($twitter_metad)) echo esc_attr($twitter_metad); else the_excerpt(); ?>" />
    <?php //Open PHP tags
}
?>

कोई भी जो प्लगइन की कार्यक्षमता में रुचि रखता है।

  • शीर्षक वर्तमान पृष्ठ का नाम और साइट का नाम होगा।

  • यदि "मेटाडेस्क्रिप्शन" नामक एक कस्टम फ़ील्ड मौजूद है, तो प्लगइन इस फ़ील्ड से विवरण लेने की कोशिश करता है। अन्यथा, अंश से विवरण लें।

  • छवि के रूप में, प्लगइन पृष्ठ पर चित्रित छवि के थंबनेल का उपयोग करने की कोशिश करता है।


2
कृपया esc_attr()HTML विशेषता सामग्री के लिए उपयोग करें ।
FUXIA

जैसा कि आपने मुझे बताया था मैंने esc_attr () का उपयोग करने के लिए संशोधित किया। धन्यवाद।
डिएगोशोटो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.