الصفحة الرئيسية » وورد » إعادة كتابة عناوين المواقع في نصائح ووردبريس والإضافات

    إعادة كتابة عناوين المواقع في نصائح ووردبريس والإضافات

    سمحت أحدث التحديثات لـ WordPress للمطورين بتخصيص مواقعهم الشخصية بسرعة كبيرة. من السهل تحديث مناطق السمة الخاصة بك ، واستبدال التطبيقات المصغّرة في الشريط الجانبي ، وحتى كتابة وظائف كود PHP المخصصة الخاصة بك. الامتداد ضخم - وهناك مجال شائع يتمثل في إعادة كتابة الرابط الثابت لعناوين URL.

    هناك بعض الطرق التي يمكنك استخدامها لمتابعة تحديث نظام إعادة كتابة WordPress الافتراضي. في هذا البرنامج التعليمي سوف أشارك بعض الأمثلة وأوضح مدى بساطة العملية. ستحتاج إلى بعض فهم PHP لمتابعة ما يجري في الكود ، لكن من السهل جدًا نسخه ولصقه في القالب الخاص بك ، ولا يوجد عمل من الناحية العملية.

    فهم WP_Rewrite

    إذا كنت معتادًا على mod_rewrite على خوادم Apache ، فستنتقل إلى بناء جملة WordPress لإعادة الكتابة. لا يزال نظامهم مبني على قمة .هتكس ملف ، ولكن يتم ترميز جميع القواعد في PHP. هذا في الواقع يجعل العملية أسهل قليلاً نظرًا لأن لدينا سيطرة أكبر على كتابة عناوين URL الخاصة بنا.

    أوصي بتخطي صفحة فئة $ wp_rewrite لأنها تحتوي على الكثير من المعلومات حول هذا الموضوع. هناك أمثلة صغيرة يمكننا الإشارة إليها لتسهيل فهم كل شيء. يمكن كتابة معظم الشفرة مباشرة في نسختك functions.php ملف. دعنا نبدأ من خلال النظر في إعادة كتابة الافتراضي المضمنة بالفعل مع وورد.

    محتوى $ wp_rewrite-> القواعد

    بإعلان $ wp_rewrite فئة عالمية لدينا الوصول إلى جميع البيانات الداخلية. عندما تذهب لإلحاق القواعد الخاصة بك تضاف هذه في مجموعة مع الاسم $ wp_rewrite-> قواعد. من المهم أن تتذكر هذا المتغير لأنك ستحتاج على الأرجح إلى الرجوع إلى البيانات عدة مرات أثناء التطوير.

    قواعد)؛ ؟>

    أضفت هذا الكود من الشفرة إلى موضوعي page.php ملف. سوف يخرج مجموعة كبيرة من البيانات التي تبدو وكأنها فوضى كبيرة. لكن اذا كنت أنظر المصدر من السهل في الواقع معرفة قواعد إعادة الكتابة التي تتم مطابقتها مع اسم الملف. على سبيل المثال ، دعنا ننظر إلى قواعد إعادة كتابة الفئة:

    [category /(.+؟)/؟$] => 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 () من مخطوطة ووردبريس لدمج بعض الإعدادات الجديدة. في هذه الحالة لقد استبدلت /مؤلف/ مع /كاتب/ ولكن يمكنك استخدام أي قاعدة تريد. بالإضافة إلى ذلك ، قمت بنسخ بعض عمليات إعادة التوجيه الأخرى لصفحات المؤلفين وخلاصات RSS. يمكنك إضافة مجموعة التعليمات البرمجية هذه إلى ملف function.php الخاص بسمتك.

    add_action ('init' ، 'add_author_rules') ؛ function add_author_rules () add_rewrite_rule ("writer / ([^ /] +) /؟"، "index.php؟ author_name = $ مطابق [1]"، "top")؛ add_rewrite_rule ("الكاتب / ([^ /] +) / page /؟ ([0-9] 1،) /؟"، "index.php؟ author_name = $ مطابق [1] & paged = $ مطابق [2] "، "أعلى")؛ add_rewrite_rule ("writer / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /؟"، "index.php؟ author_name = $ مطابق [1] & feed = $ مطابق [2]"، " أعلى")؛ add_rewrite_rule ("الكاتب / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /؟"، "index.php؟ author_name = $ مطابقات [1] & feed = $ مطابق [2]" ، "أعلى")؛  

    يمكن الوصول إلى هذه الوظيفة حتى بدون استخدام المتغير $ wp_rewrite. يعجب بعض المطورين بهذه الطريقة لأنها أبسط من الترميز الثابت بخصائص الفئة. ومع ذلك ، لاحظت أيضًا أن هذه الطريقة غير موثوقة دائمًا في بعض عمليات تثبيت WordPress. يوجد بالفعل خيار ثانٍ لإضافة هذه القواعد على الخطاف بعد مسح .htaccess الخاص بك (انظر أدناه).

    قاعدة المؤلف باستخدام gener_rewrite_rules

    الكتابة لهذه الطريقة سوف نحتاج مرة أخرى إلى فئة wp_rewrite $ العالمية. ثم قمت بإعداد متغير جديد اسمه $ new_rules الذي يحتوي على مجموعة من البيانات الترابطية. مثال التعليمة البرمجية أدناه يعيد فقط كتابة قسم صفحة المؤلف الأساسية.

    function gener_author_rewrite_rules () global $ wp_rewrite؛ $ new_rules = array ("writer / ([^ /] +) /؟" => "index.php؟ author_name =". $ wp_rewrite-> preg_index (1))؛ $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> القواعد ؛  

    ولكن إذا أردنا تضمين صفحات متعددة وخلاصات RSS ، فيمكننا تعزيز الصفيف. لديك خيار إنشاء وظيفة PHP لدفع بيانات مجموعة النقابي التي قد تكون معقدة بعض الشيء. يمكننا أيضًا تقسيم كتل البيانات عبر فواصل ، ونتصرف ككيانات منفصلة في الصفيف. تحقق من بلدي رمز تحديثها مرة أخرى مكتوبة في ملف theme.php الموضوع.

    function gener_author_rewrite_rules () global $ wp_rewrite؛ $ new_rules = array ("writer / ([^ /] +) /؟" => "index.php؟ author_name =". $ wp_rewrite-> preg_index (1) ، "writer / ([^ /] +) / page /؟ ([0-9] 1،) /؟ "=>" index.php؟ author_name = ". $ wp_rewrite-> preg_index (1)." & paged = ". $ wp_rewrite-> preg_index (2)، "الكاتب / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /؟" => "index.php؟ author_name =". $ wp_rewrite-> preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)، "writer / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /؟" => "index.php؟ author_name =". $ wp_rewrite- > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2))؛ $ wp_rewrite-> rules = $ new_rules + $ wp_rewrite-> القواعد ؛  

    فقط تذكر أنه لن تعمل أي من هذه الطرق إلا بعد مسح قواعد إعادة الكتابة الأصلية. سيكون عليك القيام بذلك في أي وقت تقوم فيه بإجراء تغييرات على هذه الوظائف ، ولكن بعد ذلك ستتمسك قواعدك الجديدة إلى أجل غير مسمى.

    مسح قواعد إعادة الكتابة

    كلما قمت بإجراء تحديث لرمز إعادة كتابة URL ، لا يتم تطبيق التغييرات على الفور. يجب عليك مسح قواعد إعادة كتابة .htaccess حتى تتم إضافة الرمز الجديد. ومع ذلك ، فإن تنفيذ هذا على كل صفحة init يعد إهدارًا للغاية لأنه يكتب في قاعدة البيانات ويقوم بتحديث ملف htaccess الثابت.

    هناك طريقة أفضل للوصول إلى صفحة الروابط الدائمة في لوحة المشرف وإعادة حفظ التغييرات. يستدعي هذا دائمًا flush_rewrite_rules حتى لا تقلق أبدًا بشأن المستخدمين على الواجهة الأمامية الذين يواجهون مشكلات في التحميل. ويستغرق الأمر مرة واحدة فقط إعادة حفظ الصفحة وتحديث جميع القواعد في نظامك. ولكن إذا لم ينجح ذلك ، يمكنك محاولة الاتصال $ wp_rewrite-> flush_rules ()؛

    باستخدام قواعد غير الفسفور الابيض

    داخل ال $ wp_rewrite فئة لدينا الوصول إلى العشرات من الخصائص. أحد الخيارات الأكثر أهمية هو $ wp_rewrite-> non_wp_rules الذي يجمع مجموعة من عمليات إعادة التوجيه التي لا تصل إلى ملف index.php.

    هذا هو في الواقع يستخدم في معظم الأحيان في تطوير البرنامج المساعد وورد. يمكنك دفع نوع محدد من عناوين URL المخصصة (مثل / التقويم / يونيو 2012 /) في الجزء الخلفي من موقع الويب الخاص بك (/wp-content/plugins/calendarplug/myscript.php). ولكن بالطبع هناك استخدامات إضافية لهذه المجموعة النقابية من قواعد إعادة الكتابة المخصصة بخلاف المكونات الإضافية. لقد قدمت مثالًا ممتازًا في السياق أدناه.

    اخفاء ملفات السمات الخاصة بك

    هذا اقتراح شائع أراه كثيرًا على لوحات مناقشة WordPress. من الناحية المثالية ، نود الإشارة إلى بعض الملفات داخل / الفسفور الابيض بين المحتوى / المواضيع / mytheme / المجلد مع URL أكثر أناقة. لاحظ أن هذا سيتطلب مجموعة مختلفة من إعادة كتابة WordPress لتغيير بنية الدليل.

    يقوم نظام إعادة كتابة WordPress الداخلي دائمًا بدفع المحتوى نحو ملف توجيه واحد. في الحالة الافتراضية ، نستخدم index.php مع أي بيانات سلسلة استعلام إضافية. ولكن لإخفاء دليل قالب قياسي لدينا (/ الفسفور الابيض بين المحتوى / المواضيع / mytheme / *) سنحتاج إلى عرض العديد من الملفات المختلفة.

    add_action ('gener_rewrite_rules'، 'themes_dir_add_rewrites')؛ function themes_dir_add_rewrites () $ theme_name = next (explode ('/ themes /'، get_stylesheet_directory ())) ؛ $ wp_rewrite العالمية ؛ $ new_non_wp_rules = array ('css /(.*)' => 'wp-content / theme /'. $ theme_name. '/ css / $ 1'، 'js /(.*)' => 'wp-content / theme / '. $ 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. وفقًا للمستندات ، فهذه قواعد لا يتم توجيهها إلى ملف index.php الخاص بـ WP وسيتم معالجتها في نهاية الخادم.

    إن ما يميز هذه القواعد غير المتعلقة بـ WP هو أنه لا يزال بإمكانك إدارة طريقة عنوان URL الأقدم بسهولة تامة. لا يوجد شيء يمنعك من الارتباط بـ:

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

    ولكن يبدو أجمل بكثير إذا كنت تستطيع الرجوع:

    /images/wordpress-urls-rewrite/logo.jpg في حين أن.

    أدوات مفيدة والإضافات

    هناك فقط عدد قليل من الأدوات التي يمكنك استخدامها إذا واجهتك مشكلة في ترميز عناوين URL الجميلة الخاصة بك. من الصعب للغاية فهم هذه العملية ، لذلك لا تشعر بالإحباط إذا كنت تكافح لبضعة أسابيع. أشعر أن المحتوى سيصبح أسهل حيث تقضي مزيدًا من الوقت في التدريب.

    ولكن للبدء ، تحقق من بعض هذه الأدوات والإضافات المفيدة لإعادة الكتابة. ربما لن تحتاج إليها جميعًا ، لكن من الجيد العثور على قاعدة مطورين كبيرة تعمل على إعادة كتابة WP.

    قرد إعادة كتابة محلل

    عند القفز أولاً إلى قواعد إعادة كتابة هذا البرنامج المساعد يجب أن يكون. إنه لا يغير فعليًا أيًا من قواعد موقع الويب الخاص بك - فهو يتيح لك فقط اختبار التعليمات البرمجية ومعرفة أي عمليات إعادة التوجيه تذهب إلى أي صفحة. ستعمل حتى لاختبار متغيرات الاستعلام المخصصة لأي أنواع منشورات مخصصة.

    AskApache عارض RewriteRules

    يشبه هذا المكوّن الإضافي أعلاه إلا أنه لا يتيح لك اختبار قواعدك الخاصة. بدلاً من ذلك ، سيعرض هذا البرنامج المساعد جميع قواعد WP الافتراضية لموقع الويب الخاص بك ومكان إعادة التوجيه إليه. وسيشمل هذا جميع الخصائص الرئيسية لل $ wp_rewrite مثل إعدادات الرابط الثابت وقواعد الصفحة / الفئة / العلامات.

    الفسفور الابيض htaccess التحكم

    يوجد هنا مجموعة مختلفة من القواعد لإجراء عمليات إعادة توجيه للصفحة الجديدة. يحتوي المكون الإضافي على لوحة إدارة خاصة به حيث يمكنك تحرير المتغيرات مثل قاعدة المؤلف وقواعد الصفحة وحتى إلحاق قواعد htaccess المخصصة الخاصة بك..

    تختلف هذه الطريقة عن بناء أسلوبك الخاص باستخدام wp_rewrite. ومع ذلك ، قد يكون الأمر أسهل بالنسبة إلى التقنيين الذين يعرفون حقًا خوادم الويب ويشعرون بمزيد من الراحة في الكتابة مباشرةً إلى .htaccess.

    أعد اختبار القاعدة

    هذا في الواقع ليس مكونًا إضافيًا لبرنامج WordPress ، ولكنه بالتأكيد أداة واحدة مفيدة لحفظ الملف. يمكنك نسخ قواعد إعادة الكتابة واختبارها على موقع الويب الخاص بك دون تعديل ملف htaccess. هذه هي الطريقة المثلى لإزالة الأخطاء من بناء الجملة قبل البدء مباشرة على الويب.

    DW إعادة كتابة

    DW Rewrite هو مكون إضافي بسيط للغاية يقوم بإنشاء 3 عناوين URL جميلة فريدة بعد التثبيت مباشرةً. بشكل افتراضي ، سيتم تغيير روابط المسؤول وتسجيل الدخول والتسجيل إلى /مشرف, /تسجيل الدخول, و /تسجيل على التوالي.

    قد يكون ذلك رائعًا إذا كنت بحاجة إلى حل سريع لمدونة تحتوي على مؤلفين متعددين. سيخفي على وجه التحديد رابط تسجيل WordPress الملفوف بشكل محرج (/wp-login.php؟action=register).

    استنتاج

    آمل أن يقدم هذا البرنامج التعليمي بعض الأمثلة لتجعلك تفكر في إعادة كتابة ووردبريس. يحظى نظام إدارة المحتوى (CMS) بشعبية كبيرة والمطورين ما زالوا ينتجون ميزات جديدة كل يوم. يعد تخصيص عناوين URL الخاصة بك جزءًا كبيرًا من الوظائف المستندة إلى المستخدم. إنه يعطي موقع الويب الخاص بك وجودًا فريدًا وعلامة تجارية فريدة مقارنة بالخيارات الافتراضية.

    إذا كنت تواجه مشكلة مع قواعد إعادة الكتابة ، فلن يكون من الصعب أبدًا التراجع عن الضرر. ببساطة عن طريق حذف رمز الوظيفة وطرد قواعد .htaccess الخاصة بك يبدو أنه لم يتغير شيء. تأكد من مراجعة بعض المقالات المشابهة الأخرى التي يمكنك العثور عليها في الموضوع. وإذا كان لديك أي أسئلة أو تعليقات ، فيمكنك مشاركتها معنا في منطقة مناقشة ما بعد المناقشة.