क्या कोई वैश्विक फ़ंक्शन है। एफपी फ़ाइल जो किसी भी विषय के लिए काम करती है?


11

क्या कुछ वैश्विक प्रकार के फ़ंक्शन हैं। एफपी फ़ाइल जो किसी भी विषय के लिए काम करती है?

समस्या यहाँ है:

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

इसलिए, किसी विषय के functions.php में परिवर्तन करने के बजाय, क्या कुछ functions.php फ़ाइल में परिवर्तन करना संभव है जो किसी भी विषय से स्वतंत्र है?


4
क्या वास्तव में इनाम आवश्यक है? प्रश्न के पहले से ही अच्छे उत्तर हैं
onetrickpony

@Mohit बंब के रूप में एक) इनाम और b) देने वाला पहला था जिसने एक प्लगइन का उपयोग करने का सुझाव दिया था, मैं कहूंगा कि वह प्रतिनिधि अंक (पीछे) प्राप्त करने वाला होना चाहिए। IMO एक इनाम आवश्यक नहीं था (और मुझे लगता है कि उसे पता नहीं था कि वह वास्तव में इसे देने के लिए किया था दूर )।
कैसर

जवाबों:


15

थीम और गैर-थीम कोड के बीच अंतर तकनीकी के बजाय संगठनात्मक है। कोई भी कोड जो सक्रिय है, परिणामस्वरूप पर्यावरण में योगदान देता है, इससे कोई फर्क नहीं पड़ता कि वह कहां से लोड किया गया है।

उन स्थानों की संख्या है जहाँ से कोड लोड किया जाता है, जो वर्डप्रेस कोर का हिस्सा नहीं हैं:

  • wp-config.php विन्यास फाइल
  • सक्रिय विषय (और बाल विषयों के लिए इसका जनक)
  • सक्रिय प्लगइन्स
  • प्लगइन्स का उपयोग करना चाहिए
  • ड्रॉप-इन (ये कुछ उन्नत हैं और बहुत विशिष्ट उद्देश्यों की पूर्ति करते हैं)

अपने स्वयं के कोड के लिए विशिष्ट स्थान, जो विषय का हिस्सा नहीं होना चाहिए, एक प्लगइन बनाना है। अन्य दृष्टिकोणों में जेनेरिक मामले से लाभ नहीं हैं, लेकिन फ़ॉरेफ़िट इंटरफ़ेस (व्यवस्थापक क्षेत्र के माध्यम से प्रबंधन) और सामान्य प्लगइन की तकनीकी (सक्रियण / निष्क्रियता / स्थापना रद्द करने की घटनाओं) की सुविधा है।


आप और @kaiser दोनों को +1। मेरा मानना ​​है कि सही उत्तर 1 है) कस्टम कार्यक्षमता को घर में बनाने के लिए एक बाल थीम बनाएं functions.phpया 2) उस कार्यक्षमता को घर में बनाने के लिए एक कस्टम प्लगइन बनाएं, ताकि यह विभिन्न विषयों के बीच पोर्टेबल हो।
चिप बेनेट

@ प्रश्न के बाद से कोड को संरक्षित करने के बारे में पूछता है जब विषयों को बदलते हुए मैं बच्चे के विषय को फिटिंग के रूप में नहीं देखता हूं। यदि आप उस विषय पर स्विच करना चाहते हैं जो बाल विषय है? प्लगिन दी गई आवश्यकताओं के लिए सबसे उपयुक्त है।
रारस्ट

इसलिए मैंने आप दोनों को वोट दिया। :) लेकिन, आप अभी भी थीम्स को स्विच करते समय बाल थीम का उपयोग कर सकते हैं ; बस Template:बाल थीम में उचित रूप से टैग बदलें style.css
चिप बेनेट

@ आप मेरी बात समझ नहीं पाए। यदि मैं बाल विषय का उपयोग करना चाहता हूँ तो क्या होगा? मैं अपने कोड के साथ ट्वेंटी इलेवन के लिए चाइल्ड थीम बनाता हूं। फिर मैं उस विषय पर स्विच करना चाहता हूं जो ट्वेंटी इलेवन (या अन्य माता-पिता) का भी बाल विषय है। मेरे पास कोई रास्ता नहीं है, मैन्युअल रूप से दो बाल विषयों को विलय करने के अलावा। फिर अगली बार जब मैं विषय बदल रहा हूं, तो विलय करना। यह एक गड़बड़ है।
रारस्ट

इसके लिए मुझे जरूर इस्तेमाल करना चाहिए। मुझे लगता है कि यह फंक्शन, हुक, और शॉर्टकोड को थीम में इस्तेमाल करने के लिए एक त्वरित, सरल तरीका है
chiliNUT

6

खैर यह एक वास्तविक समस्या है और कई लोग इसका सामना करते हैं जब वे विषय बदलते हैं लेकिन एक सरल समाधान है।

उस फ़ंक्शन को एक नए पृष्ठ पर जोड़ें, जो कार्य नहीं करता है ।php और इसे उदाहरण के लिए एक अनूठा नाम दें yousitename + टाइमस्टैम्प या जो भी आप चाहते हैं, लेकिन एक ही नाम का अद्वितीय बनाएँ फ़ोल्डर ने इसे ज़िप किया और इसे एक प्लगइन के रूप में अपलोड करें ताकि यह निश्चित रूप से तब तक काम करे जब तक कि इसे अक्षम न करें ।

समझने के लिए कि कौन सा प्लगइन है जो उस प्लगइन को नाम देने से नहीं चूकता है जैसे:

/*
Plugin Name: XYZ
*/

3

@MBTheDeveloper जवाब के अतिरिक्त।

अन्य विकल्प होंगे:

  1. अपने वर्तमान विषय के लिए एक चाइल्ड थीम बनाएं और इस एक से फंक्शन्स.php फाइल का उपयोग करें (यह "सर्वश्रेष्ठ अभ्यास" है)।
  2. includeअपनी थीम फ़ंक्शन php फ़ाइल में उपयोग करें और अपने कस्टम कोड में कस्टम- function.php फ़ाइल लोड करें।

2

अपनी साइट को विषय के कार्यों में विशेष बदलाव न करें।

इसके बजाय, साइट-विशिष्ट प्लगइन बनाएं। मुझे साइट के डोमेन नाम का उपयोग करना पसंद है, जैसे "ottopress.com"। फिर अपने स्निपेट्स को उस प्लगइन में डालें और उसे उस साइट पर ही सक्रिय छोड़ दें।

वैकल्पिक रूप से, जब आपके पास संबंधित परिवर्तनों का एक स्निपेट होता है, तो उनके लिए एक विशिष्ट प्लगइन बनाएं। यह आपको आवश्यकतानुसार संबंधित बिट्स को चालू / बंद करने का विकल्प देता है।


2

कुछ स्पष्टीकरण

पहले आपको किसी विषय में functions.php के उद्देश्य को समझना होगा। Functions.php मूल रूप से किसी भी नाम के साथ केवल एक प्लगइन फ़ाइल है जो अगर वर्तमान में Wordpress द्वारा स्वचालित रूप से लोड की जाती है। वर्डप्रेस आपके वर्तमान थीम के फंक्शन को लोड करता है। वर्डप्रेस फ्रंट-एंड पेजों के साथ-साथ बैक-एंड (एडमिन) पेजों के लिए।

प्लगइन्स और फ़ंक्शन के बीच कोई अंतर नहीं है। सिवाय इसके कि प्लगइन्स का नाम है और उन्हें अन्य प्लगइन्स और थीम के बावजूद सक्रिय / डी-सक्रिय किया जा सकता है। Funtions.php आपके वर्तमान विषय के साथ जुड़ा हुआ है और यदि आप किसी अन्य विषय पर स्विच करते हैं तो Wordpress नए विषय के फ़ंक्शन का उपयोग करता है। पीपीपी और आपके पुराने कार्यों का नहीं। कस्टम संशोधनों के साथ।

थीम अपडेट भी functions.php को अधिलेखित करता है और इससे बचने का कोई तरीका नहीं है, भले ही आप अपने कस्टम मॉडिफिकेशन को अलग कोड फ़ाइलों में डालते हैं और इसे अपने fucntions.php में शामिल करते हैं, आपको हर अपडेट के बाद उस शामिल लाइन को जोड़ना होगा।

आमतौर पर कोड का प्रकार जो फ़ंक्शन में जाना चाहिए।

  • फ़ंक्शंस जो आपके थीम की टेम्प्लेट फ़ाइलों में उपयोग किए जाते हैं।
  • विषय विकल्प
  • साइडबार
  • नेविगेशन मेनू
  • प्रारूप पोस्ट करें
  • पोस्ट थंबनेल
  • कोई भी कोड जो केवल वर्तमान विषय से संबंधित है।

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

समाधान

एक प्लगइन फ़ाइल बनाने के लिए @Otto द्वारा अनुशंसित एकमात्र समाधान है। अपनी साइट विशिष्ट प्लगइन बनाने के लिए आप जो दृष्टिकोण अपना सकते हैं, वह है कि 'wp-content / plugins' में अपने साइटनेम के साथ एक फ़ोल्डर बनाएं और उसमें प्लगइन फाइलें बनाएँ।

प्लगइन फ़ाइलें क्यों? और एकल प्लगइन फ़ाइल नहीं।

अलग-अलग प्लगइन फ़ाइलों में कोड से संबंधित समूह की साइट की कार्यक्षमता और अपनी सभी प्लगइन फ़ाइलों में प्लगइन हेडर को जोड़ना न भूलें ताकि वे अलग-अलग प्लगइन्स के रूप में वर्डप्रेस द्वारा पहचाने जाएं। फिर आपके पास हर चीज को तोड़े बिना आपकी साइट की विभिन्न विशेषताओं / कार्यक्षमता को सक्रिय / डी-एक्टिवेट करने की क्षमता होगी।

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