قائمة طعام
مجاني
التسجيل
الصفحة الرئيسية  /  التثبيت والتكوين/ كيفية إنشاء صفحة التسجيل الخاصة بك في WordPress Multisite. شكل في التخطيط الخاص بك

كيفية إنشاء صفحة التسجيل الخاصة بك في WordPress Multisite. شكل في التخطيط الخاص بك

- حدد مستودعًا - Buffalo Grove IL 60089 USA (USA) (Buffalo Grove IL 60089 USA (USA)) Chicago USA USA Tamara (16677 SW Blanton street ALOHA. Oregon 97078) Highland Park (USA، USA Highland Park، IL 60035 PO Box 723 # 24) Istanbul (Istanbul، Gençturk Cad.15، Bırlik Han. K-5.d.55 # 1) Istanbul (Nişantaşı-Valikonağı cd-Şehit İsmet Armağan sk- No 3/17) Paris (13R) Villa Madrid 92200 Neuilly-sur-Seine) Republica Moldova، Falesti (s.Fagadau) South Kensington (Bute street) Adler (Quiet Lane 2، Kudepsta District) Aktobe (Aktyubinskaya str.47/2) Almetyevsk (Almetyevsk، Lenin st.) 13، office 306) Anapa (Terskaya st. 88، 3rd floor) Astrakhan (Kommunisticheskaya st.17، office 4) Atyrau (Atyrau، Azattyk ave.42، office 206) Berdyansk (Zaporozhye region) Bishkek (Bishkek Chui ave. 32B Izumrud مركز التسوق ، مكتب C-5) Blagoveshchensk (50 شارع Let Oktyabrya. 15. Amurskaya Yarmarka ، مكتب 575) Buguruslan (Krasnoznamennaya st. 47/2) Veliky Ustyug (Veliky Ustyug ، شارع Krasnaya st. ، 61 (الطابق الثاني) وسط المدينة) فلاديفوستوك (شارع سفيتلانسكايا 147 مكتب 2/4) ب أولجوجراد (مدينة فولغوغراد ، طريق Aviatorov السريع 15 ، المستودع 23) Dyurtyuli (شارع Agidel ، 4 ، الربع 2) Yeisk (Karla-Marx St. 42/1) Yekaterinburg (St. Pervomayskaya 56، office 308) Yekaterinburg (Mamina-Sibiryaka str. 10، office 3) Ivanovo (Sheremetyevsky prospect، 85G، Business Center "Premium Plaza" 2nd floor، office 212) Izhevsk (Lenina 21، office 304. Business Center "Forum" ) Izberbash (Chapaeva 4 ind. 368501) Irkutsk (Irkutsk، Gornaya street 4 (next to Karamel shopping centre) office 407) Ishimbay (Zorge، house 18) Yoshkar-Ola (Lenin Ave. 24v، office 318) Kazan (10، ممر Odorodorinka Grivki ، محطة مترو Kozya Sloboda ، أيضًا شارع Dekabristov ، 85 "B" Business Center "Relita" office 411) Kamensk-Uralsky (Prospect Pobedy 56) Kemerovo (شارع Demyan Bednogo ، 1 office 401) Kiev (Olevskaya str. 9 شقة .4 (الوصول عن طريق الاتصال المسبق) كومسومولسك أون أمور (شارع شيخانوفا 10 ، مكتب 1 مدخل من كومسومولسكايا من نهاية المبنى.) كوستروما (بروسبكت ميرا 51 ، مكتب 15) كراسنودار (شارع كراسنايا 124 مكتب 302) كراسنويارسك (Krasnoyarskiy Rabochiy Ave.، 120 Shopping Center "Krasnoyarye") Lviv (Soborna Square 12A) Makhachkala (Akushskiy 9v) Miass (30 Let VLKSM Street 85) مينسك (Korzhenevskogo، 26) موسكو (مترو: VDNKh، st.Yar. 10 مبنى 4 مكتب 10 6) موسكو (شارع سيمفيروبولسكي) موسكو (جلازوفسكي لين 5 ، مدخل القوس ، الباب على يسار محطة المترو: Smolenskaya-500m ، Kropotkinskaya-1km. ، Park Kultury-1km.) موسكو (م. تشيخوفسكايا ، بوشكينسكايا ، تفرسكايا. شارع Strastnoy ، 6 ، المبنى 1 ، Delovoy Tsentr ، مكتب 421) موسكو (Lobnya ، شارع Mayakovskogo ، 4A ، TP1 ، الطابق الثالث ، مكتب 301) موسكو (محطة مترو مولوديزنايا ، شارع يارتسيفسكايا ، المبنى 27 ، المبنى 9 مركز أوزدوروفيتيلني "أربعة Elements ") موسكو (Krasnaya Presnya 38-45) موسكو (g. مترو موسكو تاغانسكايا مخرج شعاعي 3 ، 30 مترا من المترو. شارع. Bolshie Kamenshiki 1 ، 4th floor ، office 30) Moscow (metro Leninsky prospect، Vavilova 9A، building 6، office 10 B، 3rd floor) Moscow (metro Novoslobodskaya، Mendeleevskaya، Mayakovskaya، Belorusskaya (radial). 4th Tverskaya street -Yamskaya، 24 . المدخل عبر القوس ، ZOO STORE) موسكو (Belorusskaya (الدائري) محطة مترو ، 5 أمتار من مخرج المترو.) موسكو (M. ALTUFEVO ، شارع بسكوفسكايا. 6) موسكو (موسكو ، شارع راديو 5 ، المبنى 4.2 الطابق ، 201 مكتب (مبنى منفصل مكون من 3 طوابق)) نابريجناي شيلني (شارع بوشكين 4 (45/05) ، مدخل 2 ، مكتب 2) نابريجناي تشيلني (ش عثمانوفا ، 122 كيلو بايت 111 الطابق الأول) نالتشيك (نالتشيك ، كيروف شارع 292 أ ، الطابق الثاني ، مكتب 6) ناخودكا (شارع بوغرانيشنايا ، 6 ، مكتب 304) نيفينوميسك (مربع 50 عامًا من أكتوبر 8 أ) نيفتيوغانسك (مبنى 12 منطقة صغيرة 7) نيجنفارتوفسك (نيجنفارتوفسك ، شارع ميرا 31 ب) نيجني نوفغورود (كومينترنا) شارع 139 ، مكتب 603 (مركز الأعمال OREOL)) نيجني نوفغورود (مترو جوركوفسكايا ، شارع كوستينا ، 3 ، BC "ميدان جديد" ، الطابق الثاني ، مكتب 239) نيجني تاجيل (قريب L. Krasnoarmeyskaya 42a، 3rd floor office 4) Nizhny Tagil (Nizhny Tagil، st. بابانينا 5 ، مكتب 1 ، كوشفا ، شارع غورنياكوفا. 2/11) نيكولاييف (شارع ريومين 5/1) نوفوروسيسك (منطقة كراسنودار ، نوفوروسيسك ، قرية تسيمدولينا ، شارع الأسماك الذهبية ، 15) نوفوروسيسك (شارع مراد أخيدزاك ، دي 4 ) نوفوسيبيرسك (شارع 42 Oktyabrskaya ، مكتب 601 ، مركز الأعمال ، مبدئيًا ساحة لينين ، سينما ماياكوفسكي) نوفوسيبيرسك (شارع غوغول 33/1 .20 مترًا من محطة مترو مارشال بوكريشكينا ، مركز التسوق في غوغوليا.) نوفوترويتسك (شارع سوفيتسكايا. ، D. 144 شقة 26) Novy Urengoy (Druzhba microdistrict، building 4/3، apt 183) Norilsk (Leninsky prospect، 47a، office 79) Nur-Sultan (Astana) (Beibitshilik 14، BC Marden، office 708) Odessa ( b -p الفرنسية 60 مصحة إعادة تأهيل متعددة الجوانب "SARTUS") Oktyabrsky (Microdistrict 32a، building 6، apt.88) أومسك (St. 71 مكتب 107) بيرم (سوفيتسكايا د. 52 مكتب 1) بيرم (شارع دروزبي ، مبنى 34 مكتب 305) بيت ياخ (منطقة صغيرة 5 ، مبنى 5) بياتيغورسك (شارع 295 قسم البندقية و 13 ، المبنى 2) روستوف أون دون (سوبورني لين 21 مكتب 10 ب) سالافات (شارع لينين ، المبنى 3 مكتب 209 ، الطابق الثاني) سمارة (شارع نوفو سادوفايا 106 ، مكتب 804 ، المصعد الأيسر ، الطابق الثامن ) سانت بطرسبرغ (المترو: Vasileostrovskaya ، الخط 13 من جزيرة Vasilievsky ، 78 ، مكتب 182) سانت بطرسبرغ (مترو Dostoevskaya (5 أمتار) ومترو Vladimirskaya (300 متر) VLADIMIRSKY PASSAGE الطابق الثالث ، المدخل المركزي معرض الصور الأول ، العلاقات العامة. Vladimirsky 19) سانت بطرسبرغ (مترو Admiralteyskaya (10 أمتار) مترو نيفسكي (7 دقائق مشي). TC "ADMIRAL" Malaya Morskaya street، 4/1) سانت بطرسبرغ (مترو Sennaya ، مترو Sadovaya ، m Spasskaya 1 دقيقة سيرا على الأقدام ، Efimova شارع 1 ، الطابق 2 ، مكتب 4 ، مركز الأعمال "سينايا 4" ، المدخل إلى يسار مقهى "سيفر") ساراتوف (شارع بولشايا جورنايا ، 359 فولت ، مكتب رقم 3) سيفاستوبول (شارع أوشاكوفتسيف 19 ، المركز "بلازا" ، الطابق الأرضي ، مكتب 29/2) Snezhinsk (شارع Zababakhina 19 أ) سوتشي (Sochi ko. Donskaya house 15.) Sochi (st. Sovetskaya 42 office 204) Stavropol (st. Lomonosov office 21 18) Sterlitamak ( 85 شارع خديبر الدين ، الطابق الثالث) سورجوت (30 عامًا من شارع بوبيدي ، 64) توبولسك (توبولسك ، 6 منطقة صغيرة ، منزل 11 ، مكتب 39 (مدخل من احتمال كومسومولسكي)) توجلياتي (40 عامًا بوبيدي ، 50 ، مكتب 212 أ ، TD Raduga 1st floor) Tomsk (Tomsk، Sovetskaya street 84) Tuymazy (Michurina street، 15 office 2) Tyumen (72 Herzen street، office 214) Ulyanovsk (Ryabikova street، bld.73) Ust-Kamenogorsk (57 Gorky str.، Office 213) أوفا (ميدان فيرنتورجوفا ، 6 (مركز الأعمال NESTEROV)) خاباروفسك (شارع Postysheva ، 16 ofi ق 108) خانتي مانسييسك (G. خانتي مانسيسك ، ش. كارل ماركس 15 ، الطابق الثاني.) تشيليابينسك (بروسبكت بوبيدي 168 ، الطابق الثالث ، مكتب 36.) تشيركيسك (شارع لينين. 101) تشيتا (شارع بابوشكينا. 104 ، مكتب 425) تشيشمي (كولتسيفايا 17) تشيشمي (دروزبي افي. ، 1 ب ) سويسرا (Arosio via Terra Sotto، 1 6939) Shymkent (47 Kolkhoznaya st.) Yuzhno-Sakhalinsk (21 Angarsky lane) Yakutsk (Dzerzhinsky st.8 / 3b) Yakutsk (Yakutsk) Yalta (Lenin embankment، 5a، SEC "Fountain، الطابق الرابع) ياناول (شارع سوفيتسكايا ، 23 ، مكتب رقم 8 ، مبنى بيريوزكا) ياروسلافل (57 شوروم) ياروسلافل (شارع تشكالوفا 2) بيرسك باشكورتوستان ()؟>

تأليه التلاؤم (من التأليه اليوناني - التأليه) ، 1) في اليونان الهلنستية وروما القديمة ، تأليه رجل دولة ، بطل ، إمبراطور ، اكتسابه للجوهر الإلهي. خلال عصر النهضة ، انتقل اسم الظاهرة إلى صورتها في الرسم والمسرح. بالمعنى الحديث ، التأليه هو مشهد تمجيد للبطل ، "صورة حية" مذهلة تعبر بشكل مرن عن الفكرة الرئيسية للمشهد ، والتي تختتم عرضًا موسيقيًا أو دراميًا. تم تطوير شكل التأليه (بالإضافة إلى الأداء المدح ، الذي كان ، كما كان ، تأليه تم الكشف عنه في الوقت المناسب) في مسارح أوروبا الغربية ومسرح البلاط الروسي في القرنين السادس عشر والثامن عشر ؛ تطورت أيضًا في مسرح العصور الثورية - في فرنسا في نهاية القرن الثامن عشر ، في روسيا بعد ثورة أكتوبر. 2) بمعنى واسع - تمجيد ، تمجيد شخص ، حدث ، ظاهرة.

الموسوعة الحديثة. 2000 .

المرادفات:

شاهد ما هو "APOPHEOSIS" في القواميس الأخرى:

    - (اليونانية من تأليه إلى تأليه). 1) حساب الأبطال والأباطرة الرومان على حشد الآلهة. 2) لوحة تصور شخصاً مشهوراً على هيئة إله وثني. 3) صورة مهيبة تنتهي المسرح المسرحي. معجم الكلمات الأجنبية ... ... قاموس الكلمات الأجنبية للغة الروسية

    سم … قاموس مرادف

    تأليه- أ م. apothéose f. 1. القراءة لمضيف الآلهة. Sl. 18. بحسب تأليه هرقل. بيلسك. كوم 2 196. جمال القاعة الرئيسي هو البافوند ، الذي رسم على القماش بالطلاء الزيتي للرسام ليموين ، ويمثل الصنم الهرقل ... ... القاموس التاريخي للإغاليات الروسية

    تأليه- (من تأليه الإغريقي) ، 1) في اليونان الهلنستية وروما القديمة ، تأليه رجل الدولة ، البطل ، الإمبراطور ، اكتسابه للجوهر الإلهي. خلال عصر النهضة انتقل اسم الظاهرة إلى صورتها ... قاموس موسوعي مصور

    - (من التأليه اليوناني - التأليه) ، في البداية بين قدماء المصريين ، ثم بين اليونانيين والرومان ، وهو طقس مقدس لتأليه الحكام لمزاياهم الخاصة. عادت التأليه ، التي تحولت بمرور الوقت إلى عبادة الحكام ، إلى ... ... موسوعة فلسفية

    - (من اليونانية. تأليه التأليه). قاموس موسوعي كبير

    تأليه ، تأليه ، زوج. (تأليه اليونانية). 1. الطقس القديم لتقديم التكريم الإلهي للبطل ، الإمبراطور (IST.). 2. المديح العام الرسمي بشكل خاص لشخص ما ، والذي له طابع تتويج نشاطه (كتاب) ... قاموس أوشاكوف التوضيحي

    أفوفيسيس ، آه ، زوج. 1. تمجيد وتمجيد شخص ما ن. (الكتاب). 2. مشهد جماعي نهائي مهيب لبعض العروض المسرحية (خاص). | صفة تأليه ، أوه ، أوه. قاموس أوزيجوف التوضيحي. S.I. Ozhegov ، N.Yu. شفيدوفا. 1949 ... ... قاموس أوزيجوف التوضيحي

    - (من تأليه التأليه اليوناني) في العصور القديمة ، احتفال تأليه رجال الدولة اليونانيين القدماء ، فيما بعد الأباطرة الرومان. في الأعمال المسرحية ، يُطلق على التأليه اسم المرحلة الجماعية الاحتفالية النهائية للأداء أو ... ... العلوم السياسية. قاموس.

    جان أوغست دومينيك إنجرس. تأليه نابليون ، 1853 تأليه ، عفا عليها الزمن. تأليه ... ويكيبيديا

كتب

  • تأليه اللامأساس
  • تأليه اللامأساس ، شيستوف ليف. من المحتمل أن يكون تأليه اللامأساس هو أشهر كتب ليف شيستوف ، وأكثرها فضيحة على الأقل. في ذلك ، يقوم بهجوم مباشر على المعرفة الملزمة عالميًا و ...

سم … قاموس مرادف

BAINKI ، دون تغيير. الفصل (طفولي). نايم. هل تريد حقنة؟ الاستلقاء بينكي. القاموس التوضيحي أوشاكوف. ن. أوشاكوف. 1935 1940 ... قاموس أوشاكوف التوضيحي

جعل / جعل bainki (شراء وداعا). زارج. رصيف بحري خدمة النقل. نايم. ماكسيموف ، 21 ... قاموس كبير للأقوال الروسية

أنا أسند. عامية عن حالة النوم (في حديث الأطفال أو في محادثة بين البالغين والأطفال). الثاني int. عامية تستخدم كعنصر من عناصر التهويدة. قاموس إفريموفا التوضيحي. تي اف افريموفا. 2000 ... القاموس التوضيحي الحديث للغة الروسية بواسطة إيفريموفا

بينكي- ب ainki ، لا لبس فيه ... قاموس الهجاء الروسي

بينكي- دون تغيير ... القاموس الإملائي للغة الروسية

كثافة العمليات ، في func. حكاية. = باي باي (علامة II) ... القاموس الموسوعي

بينكي- دولي؛ في func. حكاية. = شراء بنسبة 2) ... قاموس للعديد من التعبيرات

بينكي- ba / ink / i ، بين ... القاموس الصرفي الإملائي

كتب

  • Bainki، Tokmakova I.P .. في هذا الكتاب يمكنك قراءة أو حتى غناء التهويدات لطفلك. كتاب بقص ...
  • بينكي (محرر 2006) ، إيرينا توكماكوفا. في هذا الكتاب ، يمكنك قراءة أو حتى غناء التهويدات لطفلك. كتاب مع قطع. رقم ال ISBN: 5-9524-2404-X ...

يسمح لك باستخدام تثبيت WordPress واحد لمواقع متعددة في نفس الوقت. في نفس الوقت ، يتلقى كل موقع جداول خاصة به في قاعدة البيانات ببادئة فريدة.

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

في تثبيت نموذجي صفحة WordPressيؤدي التسجيل والتفويض وإعادة تعيين كلمة المرور إلى إخراج ملف wp-login.php.

  • wp-login.php - إذن
  • wp-login.php؟ action = تسجيل - تسجيل
  • wp-login.php؟ action = lostpassword - إعادة تعيين كلمة المرور

في وضع المواقع المتعددة ، يبدأ جوهر WordPress في التصرف بشكل مختلف قليلاً ، وعندما تنقر على wp-login.php؟ الإجراء = رابط التسجيل ، ستحدث إعادة توجيه إلى wp-signup.php. هذه صفحة تسجيل شبكتك ، وهي موقع WordPress الافتراضي.

بالإضافة إلى تسجيل حسابات المستخدمين العادية ، يمكنك إنشاء موقع ويب جديد عليه ، إذا قام المسؤول المتميز بتمكين هذه الميزة في إعدادات الشبكة (مسؤول الشبكة ← الإعدادات ← إعدادات الشبكة).

في معظم السمات ، لا تبدو صفحة التسجيل جيدة جدًا. تستخدم العديد من الأسطح أطر عمل CSS مثل Bootstrap وفئاتها الخاصة لتصميم عناصر مختلفة على الصفحات ، لذلك من الصعب كتابة HTML واحد يناسب الجميع.

لكن لا تيأس إذا بدت الصفحة غير مرتبة. يعد ملف wp-signup.php رائعًا في البداية ، عندما لا يكون لديك الوقت للعمل من خلال كل تفاصيل الموقع - يمكنك التركيز على صفحات ومحتويات أخرى أكثر أهمية.

عندما تكون جاهزًا لإنشاء صفحة التسجيل الخاصة بك ، سيكون wp-signup.php نموذجًا جيدًا ومثالًا جيدًا لمساعدتك في فهم مجموعة الوظائف التي يوفرها WordPress للتعامل مع مدخلات المستخدم والتحقق من صحتها وإنشاء حسابات جديدة.

الموقع الرئيسي للشبكة

بشكل افتراضي ، يفتح WordPress صفحة تسجيل (wp-signup.php) على المجال الرئيسي (الموقع) للشبكة. ومع ذلك ، يمكنك إنشاء صفحات تسجيل لكل موقع على الشبكة ، حتى لو كان لديهم سمة.

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

بديل لـ function.php

ترتيب الملفات

يمكن أن تحتوي ملحقات MU على أي عدد من الملفات والبنية التي تبدو منطقية بالنسبة لك. أنا متمسك بشيء مثل هذا التسلسل الهرمي:

| مو | | load.php | | شبكة سيلينا | | | تسجيل | | | | plugin.php | | | ... | | | jetpack | | | | plugin.php

يتضمن ملف load.php الترجمات وجميع "الملحقات" الضرورية:

// تحميل ترجمات MU plugins load_muplugin_textdomain ("selena_network"، "/ selena-network / languages ​​/")؛ // تتطلب الوظائف لصفحة التسجيل WPMU_PLUGIN_DIR. "/selena-network/signup/plugin.php" ؛ // ملحق آخر // يتطلب WPMU_PLUGIN_DIR ...

يتم تخزين مجلدات البرنامج المساعد داخل دليل شبكة سيلينا. لكل منها plugin.php الخاص به ، والذي نقوم بتضمينه في load.php. يمنح هذا المرونة والقدرة على تعطيل وتمكين المكونات الفردية على الفور في مشروع العمل في حالة الطوارئ.

صفحة التسجيل

بعد معرفة مكان وكيفية كتابة الكود ، يمكننا المتابعة لإنشاء صفحة التسجيل.

لنقم بإنشاء صفحة بالعنوان example.org/signup/ من خلال واجهة عادية. كعنوان ، يمكنك استخدام أي عنوان URL يبدو مناسبًا لمشروعك.

إعادة التوجيه إلى صفحة التسجيل المطلوبة

لكي يتعرف WordPress على صفحة التسجيل الجديدة الخاصة بنا ويعيد التوجيه إليها ، عند النقر فوق رابط "تسجيل" ، يتم استخدام مرشح wp_signup_location. يمكن العثور عليه داخل wp-login.php وهو مسؤول عن إعادة التوجيه إلى wp-signup.php افتراضيًا.

الحالة "تسجيل": if (is_multisite ()) (wp_redirect (application_filters ("wp_signup_location"، network_site_url ("wp-signup.php"))) ؛ خروج ؛ // ...

كما تتذكر ، تفتح صفحة التسجيل افتراضيًا على المجال الرئيسي للشبكة. هذا هو سبب استخدام network_site_url () هنا.

دعنا نضيف المعالج الخاص بنا إلى عامل التصفية في mu-plugins / selena-network / signup / plugin.php ، والذي سيعيد عنوان صفحة التسجيل على الموقع الحالي:

الوظيفة selena_network_signup_page ($ url) (return home_url ("signup") ؛) add_filter ("wp_signup_location"، "selena_network_signup_page"، 99)؛

selena_network هي البادئة التي أستخدمها في أسماء جميع الوظائف داخل ملحقات MU على موقعي لتجنب الاصطدامات ، يجب استبدالها ببادتي الفريدة. عامل التصفية له أولوية 99 لأن بعض المكونات الإضافية مثل bbPress و BuddyPress قد تستبدل عنوان URL هذا بعناوينها (يتم تحميل مكونات MU في وقت أبكر من المكونات الإضافية العادية ، انظر أعلاه).

لاحظ أنه يتم استخدام home_url () ، والذي ، بخلاف network_site_url () ، يعرض عنوان الموقع الحالي ، وليس الموقع الرئيسي للشبكة.

وظائف wp-signup.php

يحتوي ملف wp-signup.php على الكثير من الوظائف والتعليمات البرمجية. لرؤية الصورة الكبيرة ، يمكنك استخدام طي الكود. هذا يسمى عادة "طي الكود" في اللغة الإنجليزية.

في بداية الملف يتم إنتاج من 1 إلى 80 سطرًا (في الإصدار 4.1.1) الشيكات المختلفةوعرض "بداية" الصفحة باستخدام get_header ().

بعد ذلك ، تم التصريح عن العديد من الطرق وقبل أن نبدأ العمل معهم ، من الجدير فهم ما تفعله كل وظيفة. غالبًا ما يستخدم الكثير منهم وظائف أخرى تحتوي على بادئة wpmu_ بداخلها ، وكلها معلن عنها في ملف wp-include / ms-function.php. يصعب فهم هذا القسم دون رؤية الكود بنفسك. فيما يلي وصف موجز للوظائف الرئيسية في حالة وجود مشاكل.

  • wpmu_signup_stylesheet () - إخراج CSS إضافي على صفحة التسجيل.
  • show_blog_form () - حقول تسجيل الموقع (العنوان والاسم وإمكانية الرؤية لمحركات البحث).
  • validate_blog_form () - تحقق من صحة عنوان الموقع الذي تم إدخاله واسمه باستخدام wpmu_validate_blog_signup ().
  • show_user_form () - حقول تسجيل المستخدم (تسجيل الدخول وعنوان البريد الإلكتروني).
  • Validate_user_form () - التحقق من صحة تسجيل الدخول وعنوان البريد الإلكتروني. البريد باستخدام wpmu_validate_user_signup ().
  • signup_another_blog () - الحقول الخاصة بتسجيل مواقع جديدة باستخدام show_blog_form () للمستخدمين المسجلين بالفعل على الموقع.
  • validate_another_blog_signup () - يتحقق من عنوان URL للموقع والعنوان باستخدام validate_blog_form ().
  • Signup_user () هي الوظيفة الرئيسية لعرض حقول صفحة التسجيل.
  • Validate_user_signup () - للتحقق من صحة اسم المستخدم وعنوان البريد الإلكتروني. البريد باستخدام validate_user_form ().
  • signup_blog () - الحقول الخاصة بإدخال العنوان والاسم وإمكانية رؤية الموقع (الخطوة الثانية من التسجيل) باستخدام show_blog_form ().
  • Validate_blog_signup () - للتحقق من صحة تسجيل الدخول والبريد الإلكتروني. البريد والعنوان واسم الموقع.

في الجزء السفلي من ملف wp-signup.php (من السطر 646 في الإصدار 4.1.1) ، المنطق الرئيسي لصفحة التسجيل ، والذي يستخدم جميع الطرق الموضحة أعلاه. لا يتم نقل هذا الجزء من الكود إلى دالة. في النهاية ، يتم استدعاء get_footer ().

انسخ وظيفة ملف wp-signup.php

بعد ذلك ، سنصف إجراء نسخ wp-signup.php في ملحقات MU وإجراء تغييرات على "fork". ربما لا يبدو هذا أفضل الطريق الصحيح... بدلاً من ذلك ، يمكنك كتابة التحقق من صحة النموذج الخاص بك وعرض الوظائف من البداية باستخدام الفئات بدلاً من الوظائف العادية. في رأيي ، يحتوي ملف wp-signup.php بالفعل على كل المنطق الضروري لصفحتنا ، كل ما تبقى هو إجراء تغييرات صغيرة.

عندما تقوم بتحديث WordPress ، يتغير wp-signup.php من وقت لآخر ، لكن هذا لا يعني أنه مع كل إصدار سيكون عليك مزامنة fork الخاص بك. تعمل الوظائف داخل wp-signup.php بشكل أساسي فقط في إخراج HTML والتحقق من صحة البيانات وإنشاء الحسابات والمواقع ، وتشارك الطرق ذات البادئة wpmu_ ، المُعلنة في ms-function.php.

لنبدأ في إنشاء وظيفة ستعرض نموذج التسجيل على الصفحة. للقيام بذلك ، انسخ wp-signup.php من جذر WordPress إلى mu-plugings / selena-network / signup /. دعنا نربطها داخل mu-plugins / selena-network / signup / plugin.php).

يتطلب WPMU_PLUGIN_DIR. "/selena-network/signup/wp-signup.php" ؛

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

نحن الآن جاهزون لإنشاء الوظيفة الرئيسية لعرض نموذج التسجيل. للقيام بذلك ، انقل كل المنطق من السطر 646 إلى نهاية الملف إلى دالة تسمى selena_network_signup_main. في النهاية ، قم بإزالة الإغلاق الإضافيين

(الخطان 722 و 723) ، بالإضافة إلى استدعاء get_footer ().

في selena_network_signup_main () الذي تم إنشاؤه حديثًا ، في البداية ، نعلن عن المتغير العام active_signup ، والذي تستخدمه جميع الطرق الأخرى من هذا الملف. وأضف استدعاءًا إلى الحدث before_signup_form ، والذي أزلناه من بداية الملف.

الوظيفة selena_network_signup_main () (global $ active_signup ؛ do_action ("before_signup_form") ؛ // ...)

الآن كل ما تبقى هو تغيير التصميم في جميع الأماكن التي يكون فيها ذلك ضروريًا وتكون صفحة التسجيل جاهزة.

إخراج استمارة التسجيل

هناك خياران على الأقل هنا. أكثر طريقة ملائمة- إنشاء رمز قصير ووضعه على الصفحة باستخدام محرر عادي.

// إنشاء رمز قصير network_signup add_shortcode ("network_signup" ، "selena_network_signup_main") ؛

الخيار الثاني هو إنشاء قالب صفحة page-signup.php في مجلد القالب الفرعي. بدلاً من كلمة "اشتراك" ، يمكنك استخدام معرف فريد مخصص للصفحة. داخل القالب ، أضف التخطيط المطلوب واستدع selena_network_signup_main () في المكان الصحيح.

نتيجة لذلك ، تبدو صفحة التسجيل الخاصة بي أفضل وأنظف بكثير.

صفحة التنشيط

بواسطة WordPress الافتراضيتقليديا يقسم عملية التسجيل في Multisite إلى خطوتين - ملء نموذج على الموقع وتفعيل حساب عند النقر على الرابط المرسل إلى البريد الإلكتروني... بعد ملء النموذج الذي تم إنشاؤه في القسم السابق ، يرسل WordPress بريدًا إلكترونيًا يحتوي على تعليمات صغيرة ورابط لتنشيط حسابك.

يعد ملف wp-active.php الموجود في الدليل الجذر لـ WordPress مسؤولاً عن عرض صفحة التنشيط. يمكن أيضًا تغيير ملف wp-active.php تمامًا. تشبه هذه العملية ما فعلناه بالفعل لـ wp-signup.php.

لنقم بإنشاء صفحة example.org/activate/ من خلال واجهة عادية. استخدم أي عنوان URL تجده مناسبًا للعنوان.

دعنا ننسخ ملف wp-active.php إلى ملحقات MU الخاصة بنا ونوصله بـ mu-plugins / selena-network / signup / plugin.php.

يتطلب WPMU_PLUGIN_DIR. "/selena-network/signup/wp-activate.php" ؛

لا يوجد محتوى كبير بالداخل ، على عكس ملف wp-signup.php. يقوم الملف بالعملية الوحيدة - فهو ينشط الحساب إذا تم استلام المفتاح الصحيح ويعرض رسالة خطأ أو اكتمال العملية بنجاح.

دعنا نزيل جميع عمليات التحقق غير الضرورية ونطلب - من 1 إلى 69 سطرًا في WordPress 4.1.1. في النهاية ، دعنا نزيل استدعاء get_footer (). انقل باقي المحتوى إلى وظيفة selena_network_activate_main ().

من المثير للاهتمام ملاحظة أنه تم الإعلان هنا عن ثابت WP_INSTALLING قبل تحميل WordPress (wp-load.php). وجوده يجعل WordPress لا يقوم بتحميل الإضافات.

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

يمكن استخدام الوظيفة الجاهزة في صفحة مُنشأة مسبقًا عبر رمز قصير أو قالب منفصل في قالب فرعي.

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

صفحة التنشيط جاهزة للعمل ، لكن WordPress لا يعرف عنها وسيظل يرسل رسائل بريد إلكتروني للتفعيل مع رابط إلى wp-active.php. على عكس wp-signup.php ، لا يوجد مرشح لتغيير العنوان. بدلاً من ذلك ، تحتاج إلى كتابة وظيفتك الخاصة التي سترسل رسائل بريد إلكتروني تحتوي على الروابط الصحيحة.

وقت تعبئة النموذج وإرساله على الصفحة التسجيل في ووردبريسيدعو wpmu_signup_ المستعمل() أو wpmu_signup_ مقالات() حسب نوع التسجيل. كلتا الوظيفتين تخلقان دخول جديدفي جدول wp_signups ، يملأه بالمحتوى الضروري ، من بينها مفتاح تنشيط الحساب.

ثم ، بناءً على الوظيفة ، يتم استدعاء wpmu_signup_ المستعمل _notification () أو wpmu_signup_ مقالات _تنبيه (). كلتا الوظيفتين لهما وظائف متشابهة - فهما تنشئان وترسلان بريدًا إلكترونيًا مع ارتباط تنشيط ، لكنهما يقبلان وسيطات مختلفة. كلاهما لهما عوامل تصفية "لاعتراض" الحدث.

If (! Apply_filters ("wpmu_signup_user_notification"، $ user، $ user_email، $ key، $ meta)) إرجاع خطأ؛

لتنشيط الحسابات مع إنشاء مدونة:

If (! Apply_filters ("wpmu_signup_blog_notification"، $ domain، $ path، $ title، $ user، $ user_email، $ key، $ meta)) (إرجاع false؛)

كل ما تبقى هو كتابة معالجاتك الخاصة ، والتي من خلالها ترسل رسائل البريد الإلكتروني عبر wp_mail () ، وفي النهاية ، تأكد من إعطاء خطأ حتى لا يرسل WordPress بريدًا إلكترونيًا للتفعيل مرتين - أحدهما لك والآخر افتراضي بريد إلكتروني برابط إلى wp-active.php.

الوظيفة selena_network_wpmu_signup_user_notification ($ user، $ user_email، $ key، $ meta = array ()) (// إنشاء رأس ونص ورؤوس البريد الإلكتروني // ... // أرسل البريد الإلكتروني أو أضف مهمة Cron لإرسال بريد إلكتروني wp_mail ($ user_email، wp_specialchars_decode ($ subject)، $ message، $ message_headers)؛ // أرسل خطأ حتى لا يرسل WordPress رسالة التنشيط الإلكترونية مرتين ترجع خطأ ؛) add_filter ("wpmu_signup_user_notification"، "selena_network_wpmu_signup_ 4) ؛

إذا كنت ترسل رسائل بريد إلكتروني عبر خادم SMTP أو كان عدد التسجيلات مرتفعًا جدًا ، فيجب أن تفكر في عدم إرسال رسائل البريد الإلكتروني على الفور. بدلاً من ذلك ، يمكنك إضافة Cron Tasks باستخدام WordPress Cron.

إغلاق الوصول إلى wp-signup.php و wp-active.php

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

لحل مشكلتين في خطوة واحدة ، يمكنك أن تطلب من Apache إرجاع 404 إذا حاولت فتح هذه الصفحات. للقيام بذلك ، تحتاج فقط إلى تسجيل بعض قواعد RewriteRule الإضافية في ملف التكوين الخاص بك أو htaccess.

RewriteEngine On RewriteBase / # معرفة التعبيرات العادية لن تكون أبدًا غير ضرورية :) RewriteRule ^ wp-signup \ .php - RewriteRule ^ wp-active \ .php - # BEGIN WordPress # لا تلمس قواعد WordPress الافتراضية :) # ... # END WordPress

استنتاج

هناك العديد من الحلول لهذه المشكلة والعديد من "المشاكل" الأخرى المتعلقة بـ WordPress على الإنترنت. على سبيل المثال ، لإنشاء صفحات التسجيل والتفعيل ، يقترح البعض إعادة كتابة ملف wp-signup.php الأصلي و wp-active.php. هذا لا يستحق القيام به ، لأنك إذا قمت بتحديث WordPress ، فستفقد جميع التغييرات التي تم إجراؤها على الملفات ، ولن تتمكن أيضًا من التحقق من التكامل الأساسي مع.

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

ملاحظة.

لتعيين أدوار مختلفة تلقائيًا للمستخدمين الجدد ، يمكنك استخدام المكون الإضافي إدارة مستخدم متعدد المواقع.

إذا كانت لديك أي أسئلة أو صعوبات أثناء إنشاء صفحات التسجيل والتفعيل بعد قراءة المقال ، فاترك تعليقًا وسنجيب بالتأكيد.

27.03.2015 27.03.2015

مطور ووردبريس. يحب الترتيب في كل شيء ويفهم الأدوات الجديدة. مستوحى من هندسة مكونات Symfony.

  • نقوم بإنشاء صفحة التسجيل الخاصة بنا للمواقع المتعددة بدلاً من wp-signup.php القياسي.

    في تثبيت WordPress نموذجي ، تعرض صفحة التسجيل (تسجيل الدخول ، إعادة تعيين كلمة المرور) ملف wp-login.php.

    • /wp-login.php - إذن
    • /wp-login.php؟action=register - التسجيل
    • /wp-login.php؟action=lostpassword - إعادة تعيين كلمة المرور

    توجد شروط منفصلة للمواقع المتعددة في ملف wp-login.php. لذلك ، عندما تنقر على الرابط /wp-login.php؟action=register في مواقع متعددة ، سيعيد WordPress التوجيه إلى الصفحة /wp-signup.php. في العديد من المظاهر ، لا تبدو الصفحة جذابة للغاية ، لذلك سنقوم بتصميم الصفحة الخاصة بنا.

    الموقع الرئيسي للشبكة

    بشكل افتراضي ، يفتح WordPress صفحة تسجيل (wp-signup.php) على المجال الرئيسي (الموقع) للشبكة. ومع ذلك ، يمكن للمرء أن يفعل صفحة منفصلةالتسجيلات لكل موقع على الشبكة ، حتى لو كان لديهم مواضيع مختلفة. سننظر في الحالة عندما يكون لجميع المواقع على الشبكة صفحة تسجيل خاصة بها ، ولكن يتم استخدام نفس الموضوع وتختلف المواقع في اللغة فقط. إذا تم استخدام سمات مختلفة ، فستحتاج إلى كتابة المزيد من التعليمات البرمجية.

    وظائف. php؟

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

    استطرادا غنائي

    تجدر الإشارة إلى أنه يتم تحميل ملحقات MU قبل الإضافات العادية وقبل تحميل نواة WordPress بالكامل ، لذا فإن استدعاء بعض الوظائف يمكن أن يؤدي إلى أخطاء فادحة في PHP. هذا التحميل "المبكر" له مزاياه أيضًا. على سبيل المثال ، داخل أي سمة ، لا يمكنك التمسك ببعض الإجراءات التي يتم تشغيلها حتى قبل تحميل ملف function.php من السمة. مثال على ذلك هو الإجراءات من البرنامج المساعد Jetpack للنموذج jetpack_module_loaded_related-posts (ذات الصلة - اسم الوحدة) والتي يمكن من خلالها تتبع نشاط الوحدات في Jetpack. من المستحيل "التشبث" بهذا الإجراء من ملف السمة ، لأن الإجراء قد تم تشغيله بالفعل قبل تحميل السمة - يتم تحميل الإضافات قبل السمات. ألق نظرة على الصورة العامة للنظام تنزيلات ووردبريسيمكن العثور عليها في صفحة مرجع الإجراء في الكود.

    ترتيب الملفات

    يمكن أن تحتوي ملحقات MU على أي عدد من الملفات وأي بنية تبدو منطقية بالنسبة لك. أنا متمسك بشيء مثل هذا التسلسل الهرمي:

    | -mu-plugins | - | -load.php | - | - | -selena-network | - | - | - | -signup | - | - | - | - | -plugin.php | - | - | - | - | -... | - | - | - |-jetpack | - | - | - | - | -plugin.php

    جميع "الملحقات" الضرورية لشبكتنا متصلة في ملف load.php:

    // تحميل Traslates لجميع الوظائف الإضافية load_muplugin_textdomain ("selena_network"، "/ selena-network / languages ​​/") ؛ // يتطلب الاشتراك في الشبكة WPMU_PLUGIN_DIR. "/selena-network/signup/plugin.php" ؛ // تتطلب ملحقات أخرى // WPMU_PLUGIN_DIR ...

    يتم تخزين مجلدات البرنامج المساعد داخل مجلد selena-network ، ولكل منها plugin.php الخاص به ، والذي نقوم بتضمينه في load.php. يمنحك هذا المرونة والقدرة على إيقاف تشغيل الأشياء وتشغيلها بسرعة.

    عنوان صفحة التسجيل

    لتحديد عنوان صفحة التسجيل ، يتم استخدام عامل التصفية wp_signup_location. يمكن العثور عليه داخل ملف wp-login.php وهو مسؤول عن إعادة التوجيه إلى wp-signup.php.

    حالة "تسجيل": if (is_multisite ()) (wp_redirect (application_filters ("wp_signup_location"، network_site_url ("wp-signup.php"))) ؛ خروج ؛

    دعنا نضيف وظيفتنا إلى mu-plugins / selena-network / signup / plugin.php ، والتي ستعيد عنوان صفحة التسجيل على الموقع الحالي:

    الوظيفة selena_network_signup_page ($ url) (return home_url (). "/ Signup /" ؛) add_filter ("wp_signup_location"، "selena_network_signup_page"، 99) ؛

    selena_network هي البادئة التي أستخدمها في أسماء جميع الوظائف داخل ملحقات MU على موقعي لتجنب الاصطدامات ، يجب استبدالها ببادتي الفريدة. عامل التصفية له أولوية 99 لأن بعض المكونات الإضافية مثل bbPress و BuddyPress قد تستبدل عنوان URL هذا بعناوينها (يتم تحميل مكونات MU في وقت أبكر من المكونات الإضافية العادية ، انظر أعلاه). لاحظ أنه يتم استخدام home_url () بدلاً من network_site_url () لإبقاء الزائر في نفس المجال. يمكن استخدام أي عنوان URL كعنوان.

    قم بإنشاء صفحة

    لنقم الآن بإنشاء صفحة بالعنوان site.com/signup/ من خلال الواجهة المعتادة ، وفي مجلد السمة الفرعية القالب الخاص بنا صفحة جديدة- page-signup.php. يمكن استخدام معرّف فريد بدلاً من كلمة "اشتراك".

    داخل القالب الجديد ، تحتاج إلى استدعاء دالة selena_network_signup_main () ، والتي ستعرض نموذج التسجيل.

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

    wp-signup.php و wp-active.php

    لنبدأ الآن في إنشاء وظيفة ستعرض نموذج التسجيل. للقيام بذلك ، انسخ ملفي wp-signup.php و wp-active.php من جذر WordPress إلى mu-plugings / selena-network / signup / (ولا تنس توصيلها داخل mu-plugins / selena-network / signup / plugin.php) ... من الصعب للغاية وصف المزيد من التلاعبات بالملفات ويستغرق وصفها وقتًا طويلاً ، لذلك سيتعين عليك القيام بها بنفسك. سوف أصف فقط ما يجب القيام به بالضبط ونشره ملفات المصدرمشروعك:

    1. في بداية الملف ، قم بإزالة جميع الطلبات واستدعاءات الوظائف والرموز الأخرى خارج الوظائف.
    2. أعد تسمية جميع الوظائف بإضافة بادئات فريدة للأسماء.
    3. لف الجزء السفلي من كود wp-signup.php في دالة selena_network_signup_main واكتب $ active_signup العام في البداية ؛ ...
    4. استبدل التصميم بالتخطيط الخاص بك في الأماكن الصحيحة.

    داخل ملف wp-active.php ، عليك أن تفعل الشيء نفسه تقريبًا:

    1. قم بإزالة جميع التعليمات البرمجية خارج الوظائف ، وقم بلف التخطيط في وظيفة منفصلة.
    2. قم بتغيير التخطيط عند الضرورة.

    ملف wp-active.php مسؤول عن صفحة تنشيط الحساب. كما هو الحال مع صفحة التسجيل ، تحتاج إلى إنشاء قالب منفصل لها ، يمكنك من خلاله استدعاء الوظيفة من ملف wp-activ.php.

    نرسل رسائل التفعيل

    صفحة التسجيل ترسل إلى الزائر بريدًا إلكترونيًا به رابط لتفعيل حسابه. بشكل افتراضي ، يتم ذلك عن طريق وظيفة wpmu_signup_user_notification () من ملف ms-function.php. يمكن استعارة وظائفها من أجل وظيفتك. سبب التوقف عن استخدام هذه الميزة هو أنها ترسل رابط تنشيط الحساب من wp-active.php. يمكنك "تعطيل" هذه الوظيفة باستخدام عامل التصفية wpmu_signup_user_notification ، وإعطاء كلمة خطأ (إذا لم تفعل ذلك ، فسيتم إرسال خطاب التنشيط مرتين ، حسنًا ، في الواقع ، حرفان مختلفان).

    الوظيفة armyofselenagomez_wpmu_signup_user_notification ($ user، $ user_email، $ key، $ meta = array ()) (// ... // Code من wpmu_signup_user_notification () function wp_mail ($ user_email، wp_specialchars_decode) ($ message_headers) ($ message_headers) ؛ return false؛) add_filter ("wpmu_signup_user_notification"، "armyofselenagomez_wpmu_signup_user_notification"، 10، 4)؛

    نتيجة لذلك ، تبدو صفحة التسجيل في موضوع سيلينا أنظف وأكثر دقة.

    استنتاج

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

    لاحظ أنه يجب عليك تحرير الملفات بعناية ومحاولة عدم الانحراف كثيرًا عن الأصل ، لذلك إذا قام WordPress بتغيير ملفات wp-signup.php و wp-active.php ، فسيكون من الأسهل مقارنتها للعثور على التغييرات.

    لا تنسى أن تنظر مصدرجميع الوظائف الموضحة أعلاه لفهم ما يحدث داخل الكود بشكل كامل وكيف.

    علاوة. حماية مرسلي الرسائل الاقتحامية

    حتى أصغر مواقع WordPress تخضع لعمليات تسجيل البريد العشوائي المتكررة. يمكنك كتابة شروط لا حصر لها لتصفية الروبوتات ، وغالبًا ما تكون أشبه بمحاولة إنشاء ذكاء اصطناعي 🙂 في حالة المواقع المتعددة ، ساعدتني إعادة التوجيه المعتادة في Apache كثيرًا ، والتي عند فتح /wp-signup.php و / wp- acitvate.php ، لقد طلبت 404 (أنا لست خبيرًا في تكوين Apache ، لذلك قد لا تكون قواعدي صحيحة تمامًا).

    RewriteEngine On RewriteBase / RewriteRule ^ wp-signup \ .php - إعادة كتابة القاعدة ^ wp-active \ .php - # BEGIN WordPress # لا تلمس قواعد WordPress افتراضيًا :) # ... # END WordPress

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