मुखपृष्ठ » वर्डप्रेस » वर्डप्रेस टिप्स और प्लगइन्स में यूआरएल को फिर से लिखना

    वर्डप्रेस टिप्स और प्लगइन्स में यूआरएल को फिर से लिखना

    वर्डप्रेस के नवीनतम अपडेट ने डेवलपर्स को अपनी व्यक्तिगत वेबसाइट को बहुत तेज़ी से अनुकूलित करने की अनुमति दी है। अपनी थीम के क्षेत्रों को अपडेट करना सरल है, साइडबार में विजेट्स बदलें, और यहां तक ​​कि अपने स्वयं के कस्टम PHP कोड फ़ंक्शन भी लिखें। विस्तार बहुत बड़ा है - और लोकप्रियता का एक क्षेत्र सुंदर URL पर्मलिंक्स का पुनर्लेखन है.

    डिफ़ॉल्ट वर्डप्रेस रीराइट सिस्टम को अपडेट करने के लिए आप कुछ विधियों का उपयोग कर सकते हैं। इस ट्यूटोरियल में मैं कुछ उदाहरण साझा करूँगा और प्रदर्शित करूँगा कि प्रक्रिया कितनी सरल हो सकती है। कोड में क्या चल रहा है इसका पालन करने के लिए आपको PHP की कुछ समझ की आवश्यकता होगी, लेकिन अपने स्वयं के टेम्पलेट में कॉपी और पेस्ट करना बहुत आसान है, व्यावहारिक रूप से कोई काम शामिल नहीं है.

    WP_Rewrite को समझना

    यदि आप Apache सर्वर पर mod_rewrite से सभी परिचित हैं तो आप WordPress rewrite सिंटैक्स पर लेंगे। उनकी प्रणाली अभी भी शीर्ष पर बनी है .इनको फ़ाइल, लेकिन सभी नियम PHP में कोडित हैं। यह वास्तव में प्रक्रिया को थोड़ा आसान बनाता है क्योंकि हमारे पास अपने स्वयं के URL लिखने पर अधिक नियंत्रण है.

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

    $ Wp_rewrite-> नियमों की सामग्री

    घोषित करके $ wp_rewrite वैश्विक के रूप में वर्ग हम आंतरिक डेटा के सभी के लिए उपयोग किया है। जब आप अपने स्वयं के नियमों को जोड़ने के लिए जाते हैं तो नाम के साथ एक सरणी में जोड़ दिए जाते हैं $ Wp_rewrite-> नियम. इस चर को याद रखना महत्वपूर्ण है क्योंकि आपको विकास के दौरान कई बार डेटा को संदर्भित करने की आवश्यकता होगी.

    नियम); ?>

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

    [श्रेणी /(.++)/?$] => index.php? category_name = $ मैच [1] 

    कोष्ठक में बाईं ओर थोड़ा सा हमारा Apache RewriteRule है। अनुभाग के साथ शुरू /वर्ग/ वर्णों के किसी भी स्ट्रिंग के बाद। यदि यह मिलान किया जाता है, तो सर्वर संदर्भ देना जानता है index.php? CATEGORY_NAME = जबकि अंत में चर की जगह.

    कस्टम पर्मलिंक सेट करना

    $ Wp_rewrite वर्ग में अकेले जाने के लिए बहुत सारी सामग्री है। कई अन्य गुणों को संदर्भित किया जा सकता है, जैसे कि $ Wp_rewrite-> category_base या $ Wp_rewrite-> author_base इन पृष्ठों के लिए डिफ़ॉल्ट URL संरचनाओं को खींचने के लिए। लेकिन WP की डिफ़ॉल्ट सेटिंग्स खींचने से अलग हम अपने नियम भी बना सकते हैं.

    लेखक बेस का पुनर्निर्माण

    जब आप पर्मलिंक सेटिंग पृष्ठ दर्ज करते हैं तो आपके पास श्रेणी और टैग आधारों को रीसेट करने का विकल्प होता है। हालाँकि आपके लेखक आधार को रीसेट करने का विकल्प अजीब तरह से गायब है.

    लेकिन हम उपयोग कर सकते हैं add_rewrite_rule () कुछ नई सेटिंग्स को एकीकृत करने के लिए वर्डप्रेस कोडेक्स से। इस मामले में मैंने प्रतिस्थापित कर दिया है /लेखक/ साथ में / लेखक / लेकिन आप जो चाहें आधार का उपयोग कर सकते हैं। इसके अतिरिक्त मैंने लेखक पृष्ठों और आरएसएस फ़ीड के लिए कुछ अन्य रीडायरेक्ट की नकल की है। आप अपने थीम के फंक्शन्स.php फ़ाइल में कोड के इस ब्लॉक को जोड़ सकते हैं.

    add_action ('init', 'add_author_rules'); function add_author_rules () add_rewrite_rule ("लेखक / ([^ / + + +" /? "," index.php? author_name = $ माचिस [1] "," शीर्ष "); add_rewrite_rule ("लेखक / ([^ /] +] / पृष्ठ /? ([0-9] 1,"? "," index.php? author_name = $ माचिस [1] & पृष्ठांकित = 2 मिलान [2]? "," शीर्ष "); add_rewrite_rule ("लेखक / ([^ /] +) / (फ़ीड | rdf | rss। rss2। atom) /?", "index.php? author_name = $ माचिस [1] और फ़ीड = $ मिलान [2]", "? शीर्ष "); add_rewrite_rule ("लेखक / ([^ /] +) / फ़ीड / (फ़ीड | rss | rss | rss2। atom) /?", "index.php? author_name = $ माचिस [1] और फ़ीड = $ मिलान [2]" , "शीर्ष");  

    $ Wp_rewrite वैरिएबल का उपयोग किए बिना भी इस फ़ंक्शन को एक्सेस किया जा सकता है। कुछ डेवलपर्स इस पद्धति को पसंद करते हैं क्योंकि यह क्लास गुणों के साथ हार्ड-कोडिंग की तुलना में सरल है। हालाँकि मैंने यह भी देखा है कि यह विधि हमेशा कुछ वर्डप्रेस इंस्टॉलेशन के लिए विश्वसनीय नहीं होती है। आपके .htaccess को फ्लश करने के बाद हुक पर इन नियमों को जोड़ने के लिए वास्तव में एक दूसरा विकल्प है (नीचे देखें).

    लेखक बेस Gener_rewrite_rules का उपयोग कर रहा है

    इस पद्धति के लिए लेखन से हमें फिर से वैश्विक $ wp_rewrite वर्ग की आवश्यकता होगी। फिर मैंने एक नया चर नाम दिया है $ new_rules जिसमें डेटा का एक सहयोगी सरणी होता है। नीचे मेरा उदाहरण कोड मूल लेखक पृष्ठ अनुभाग के लिए फिर से लिखता है.

    function generate_author_rewrite_rules () वैश्विक $ wp_rewrite; $ new_rules = array ("लेखक / ([^ /] +) /?" => "index.php? author_name ="। $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> नियम = $ new_rules + $ wp_rewrite-> नियम;  

    लेकिन अगर हम कई पेजों और RSS फीड्स को शामिल करना चाहते हैं तो हम ऐरे को गोमांस कर सकते हैं। आपके पास साहचर्य सरणी डेटा को पुश करने के लिए एक PHP फ़ंक्शन बनाने का विकल्प है जो थोड़ा बहुत जटिल हो सकता है। हम डेटा ब्लॉक को अल्पविराम के माध्यम से विभाजित कर सकते हैं, सरणी में अलग-अलग संस्थाओं के रूप में व्यवहार कर सकते हैं। मेरे अपडेट किए गए कोड को दोबारा देखें.

    function generate_author_rewrite_rules () वैश्विक $ wp_rewrite; $ new_rules = array ("लेखक / ([^ /] +) /?" = "index.php? author_name ="। $ wp_rewrite-> preg_index (1), "लेखक / ([^ /] +) / पृष्ठ /? ([0-9] 1,) /? "=" Index.php? Author_name = "$ wp_rewrite-> preg_index (1)।" & paged = "। $ Ww_rewrite-> preg_index (2),। "लेखक / ([^ /] +) / (फ़ीड | rdf | rss | rss2 | परमाणु) /?" = "" index.php? Author_name = "। $ wp_rewrite-> pregindindex (1)।" & feed = "। $ wp_rewrite-> preg_index (2), "लेखक / ([^ /] +) / फ़ीड / (फ़ीड। rdf | rss | rss2 | atom) /?" => "index.php; Author_name ="। $ wp_rewrite- > preg_index (1)। "& feed ="। $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> नियम = $ new_rules + $ wp_rewrite-> नियम;  

    बस याद रखें कि जब तक आप मूल पुनर्लेखन नियमों को वापस नहीं लेते हैं, तब तक इनमें से कोई भी तरीका काम नहीं करेगा। जब भी आप इन कार्यों में बदलाव करते हैं, तो आपको ऐसा करना होगा, लेकिन बाद में आपके नए नियम अनिश्चित काल तक चले जाएंगे.

    पुनर्व्यवस्थित नियम फ्लशिंग

    जब भी आप URL को फिर से लिखना कोड के लिए एक अद्यतन करते हैं, तो परिवर्तन तुरंत लागू नहीं होते हैं। आपको .htaccess को फिर से लिखना होगा। इसलिए आपका नया कोड जोड़ा जाएगा। हालाँकि, प्रत्येक पृष्ठ पर यह प्रदर्शन बहुत बेकार है क्योंकि यह डेटाबेस को लिखता है और .htaccess फ़ाइल को ताज़ा करता है.

    एक बेहतर तरीका यह है कि आप अपने पेनलिंक पेज को एडमिन पैनल में एक्सेस करें और परिवर्तनों को फिर से सहेजें। यह हमेशा एक flush_rewrite_rules कहता है, ताकि आपको लोडिंग परेशानियों का सामना करने वाले फ़्रंट पर उपयोगकर्ताओं के बारे में चिंता करने की आवश्यकता न हो। और पृष्ठ को फिर से सहेजने और आपके सिस्टम में सभी नियमों को अपडेट करने में केवल एक समय लगता है। लेकिन अगर यह काम नहीं करता है तो आप कॉल करने की कोशिश कर सकते हैं $ Wp_rewrite-> flush_rules ();

    गैर-WP नियम का उपयोग करना

    के अंदर $ wp_rewrite हमारे पास दर्जनों संपत्तियों की पहुंच है। अधिक महत्वपूर्ण विकल्पों में से एक है $ Wp_rewrite-> non_wp_rules जो रीडायरेक्ट की एक सरणी एकत्र करता है जो index.php फ़ाइल को हिट नहीं करता है.

    यह वास्तव में वर्डप्रेस प्लगइन विकास में सबसे अधिक बार उपयोग किया जाता है। आप एक विशिष्ट कस्टम URL प्रकार (जैसे) पुश कर सकते हैं / कैलेंडर / जून 2012 /) अपनी वेबसाइट के बैकएंड में (/wp-content/plugins/calendarplug/myscript.php)। लेकिन निश्चित रूप से प्लगइन्स के अलावा कस्टम रीराइट नियमों के इस साहचर्य सरणी के लिए आगे उपयोग हैं। मैंने नीचे संदर्भ में एक उत्कृष्ट उदाहरण प्रदान किया है.

    अपनी थीम फ़ाइलें मास्किंग

    यह एक आम सुझाव है जो मैं वर्डप्रेस चर्चा बोर्डों पर अक्सर देखता हूं। आदर्श रूप में हम अंदर कुछ फ़ाइलों को संदर्भित करना चाहते हैं / Wp- सामग्री / विषयों / mytheme / अधिक सुरुचिपूर्ण URL वाला फ़ोल्डर। ध्यान दें कि इसके लिए निर्देशिका संरचना को बदलने के लिए वर्डप्रेस के एक अलग सेट की आवश्यकता होगी.

    वर्डप्रेस का आंतरिक पुनर्लेखन सिस्टम हमेशा सामग्री को एकल रूटिंग फ़ाइल की ओर धकेलता है। डिफ़ॉल्ट मामले में, हम किसी भी अतिरिक्त क्वेरी स्ट्रिंग डेटा के साथ index.php का उपयोग करते हैं। लेकिन हमारे मानक टेम्पलेट निर्देशिका को छिपाने के लिए (/ Wp- सामग्री / विषयों / mytheme / *) हमें कई अलग-अलग फ़ाइलों को प्रदर्शित करने की आवश्यकता होगी.

    add_action ('generate_rewrite_rules', 'themes_dir_add_rewrites'); function theme_dir_add_rewrites () $ theme_name = next (विस्फोट ('/ थीम /', get_stylesheet_directory ())); वैश्विक $ wp_rewrite; $ new_non_wp_rules = array ('css /(.*)' => 'wp-content / themes /'। $ theme_name। '/ css / $ 1', 'js /(.*) = ">' wp-content / themes / '। $ theme_name।' / js / $ 1 ',' images / wordpress-urls-rewrite /(.*) '=>' wp-content / themes / '। $ theme_name'। / images / wordpress-urls-rewrite। / $ 1 ',); $ wp_rewrite-> non_wp_rules + = $ new_non_wp_rules;  

    मैंने एक नया फंक्शन लिखा है themes_dir_add_rewrites () इन लंबे URL से सभी प्रमुख सामग्री को खींचने और बैकएंड में पुनर्निर्देशित करने के लिए। ध्यान दें कि हम $ wp_rewrite नाम की इस अन्य रहस्यमयी संपत्ति का उपयोग कर रहे हैं non_wp_rules. डॉक्स के अनुसार, ये ऐसे नियम हैं जो WP के index.php फ़ाइल को निर्देशित नहीं करते हैं और इसे सर्वर के अंत में संभाला जाएगा.

    इन गैर-WP नियमों के बारे में इतना बढ़िया है कि आप अभी भी पुराने URL विधि को आसानी से प्रबंधित कर सकते हैं। आपको जोड़ने से रोकने के लिए कुछ भी नहीं है:

    /wp-content/themes/mytheme/images/wordpress-urls-rewrite/logo.jpg.

    यदि आप संदर्भ दे सकते हैं तो यह बहुत अच्छा लगता है:

    /images/wordpress-urls-rewrite/logo.jpg बजाय.

    सहायक उपकरण और प्लगइन्स

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

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

    मंकीमैन रिवाइजर एनालाइजर

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

    AskApache रिवरनाइट्स व्यूअर

    यह ऊपर दिए गए प्लगइन के समान है, इसके अलावा यह आपको अपने स्वयं के नियमों का परीक्षण करने की अनुमति नहीं देता है। इसके बजाय यह प्लगइन आपकी वेबसाइट के सभी डिफ़ॉल्ट WP नियमों को प्रदर्शित करेगा और जहां वे रीडायरेक्ट करते हैं। इसमें सभी प्रमुख गुण शामिल होंगे $ wp_rewrite जैसे कि आपकी पर्मलिंक सेटिंग्स और पेज / श्रेणी / टैग आधार.

    WP htaccess नियंत्रण

    यहां आपके पास नए पृष्ठ को पुनर्निर्देशित करने के लिए नियमों का एक अलग सेट है। प्लगइन का अपना व्यवस्थापक पैनल है जहां आप अपने लेखक आधार, पृष्ठ आधार जैसे चर को संपादित कर सकते हैं, और यहां तक ​​कि अपने स्वयं के कस्टम .htaccess नियमों को जोड़ सकते हैं।.

    यह विधि wp_rewrite का उपयोग करके अपने स्वयं के निर्माण की तुलना में अलग है। हालाँकि यह उन तकनीकीों के लिए आसान हो सकता है जो वास्तव में वेब सर्वर को जानते हैं और सीधे .htaccess में अधिक सहज लेखन महसूस करते हैं.

    पुनर्वसन नियम परीक्षक

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

    डीडब्ल्यू रीराइट

    DW रिवर्ट एक बहुत ही सरल प्लगइन है जो स्थापना के तुरंत बाद 3 अद्वितीय सुंदर URL बनाता है। डिफ़ॉल्ट रूप से यह व्यवस्थापक, लॉगिन और पंजीकरण लिंक को बदल देगा /व्यवस्थापक, /लॉग इन करें, तथा /रजिस्टर क्रमश:.

    यह बहुत अच्छा हो सकता है यदि आपको एक ऐसे ब्लॉग के लिए त्वरित सुधार की आवश्यकता है जो कई लेखकों को पेश करता है यह विशेष रूप से शर्मनाक रूप से जटिल वर्डप्रेस पंजीकरण लिंक को छिपा देगा (/wp-login.php?action=register).

    निष्कर्ष

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

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