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

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

هناك حوالي 13 وظيفة رئيسية أود أن أبدأ بها وستضيفها حسب الحاجة ...

1. دعم القائمة المخصصة

تتيح ميزة قائمة التنقل ، المقدمة في WordPress 3.0 ، إنشاء قوائم التنقل وصيانتها في مواضيع بديهية.

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

في حين أن هذه ليست ميزة جديدة خاصة ، لا يزال من الجميل أن يلفها في if function_exists() فقط في حالة ما إذا كان المستخدم عالقاً في تثبيت ما قبل 3.0:

في ال functions.php الملف ، وتشمل ما يلي:

if ( function_exists( 'register_nav_menus' ) ) {register_nav_menus(array('main_menu' => __( 'Main Menu', 'cake' ),'secondary_menu' => __( 'Secondary Menu', 'cake' ),));}

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

 'main_menu','menu'            => '','container'       => false,'echo'            => true,'fallback_cb'     => false,'items_wrap'      => '
    %3$s
','depth' => 0 );wp_nav_menu( $defaults );?>

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

إذا كنت ترغب في المزيد من التخصيص للقائمة ، فراجع صفحة المخطوطات على ووردبرس] wp_nav_menu() وظيفة.

نريد أن تظهر القائمة الثانوية في التذييل ، لذا نفتح footer.php وتضمين التعليمة البرمجية التالية:

 'secondary_menu','menu'            => '','container'       => false,'echo'            => true,'fallback_cb'     => false,'items_wrap'      => '
    %3$s
','depth' => 0 );wp_nav_menu( $defaults );?>

2. نمط المحرر المرئي

تتيح لك هذه الوظيفة استخدام CSS مخصص لأسلوب محرر مرئي WordPress TinyMCE.

قم بإنشاء ملف CSS اسمه editor-style.css ولصق الأنماط الخاصة بك في الداخل. كعنصر نائب ، أود أن أبدأ بالأنماط في editor-style.css ملف العشرون إثنا عشر موضوع.

في ال functions.php أضف ما يلي:

add_editor_style();

إذا كنت لا تريد استخدام اسم "نمط المحرر" لملف CSS الخاص بك وتريد أيضًا نقل الملف في مكان آخر ، على سبيل المثال داخل دليل css ، قم بتعديل الوظيفة.

على سبيل المثال ، أريد تسمية ملفي tiny-mce-styles.css وأريده في دليل CSS الخاص بي. لذا فإن وظيفتي ستبدو هكذا:

add_editor_style('/css/editor-style.css');

في حين أننا في ذلك ، قد نعتزم أيضًا تصميم المحرر للغات التي تُكتب من اليمين إلى اليسار. في دليل السمات ، قم بإنشاء ملف CSS يسمى editor-style-rtl.css وعلى أقل تقدير ، قم بتضمين ما يلي:

html .mceContentBody {direction: rtl;unicode-bidi: embed;}li {margin: 0 24px 0 0;margin: 0 1.714285714rem 0 0;}dl {margin: 0 24px;margin: 0 1.714285714rem;}tr th {text-align: right;}td {padding: 6px 0 6px 10px;text-align: right;}.wp-caption {text-align: right;}

مرة أخرى ، كعنصر نائب ، الأنماط المذكورة أعلاه هي من موضوع Twenty Twelve. استعادة وتوسيع حسب الحاجة.

3. مخصص avatar الدعم

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

للقيام بذلك ، وتشمل التعليمات البرمجية التالية في الخاص بك functions.php :

if ( !function_exists('cake_addgravatar') ) {function cake_addgravatar( $avatar_defaults ) {$myavatar = get_template_directory_uri() . '/images/avatar.png';$avatar_defaults[$myavatar] = 'avatar';return $avatar_defaults;}  add_filter ('avatar_defaults'، 'cake_addgravatar')؛} 

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

نحن نطلب من WordPress العثور على هذا الصورة الرمزية في دليل "الصور" الخاص بنا داخل دليل السمات. الخطوة التالية ، بالطبع ، هي إنشاء الصورة نفسها وتحميلها إلى مجلد "الصور".

4. تنسيقات المشاركة

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

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

add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) );

5. وظيفة صورة مميزة

وظيفة صورة مميزة ، كما المخطوطة يفسر ، يسمح للمؤلف لاختيار صورة تمثيلية للوظائف ، الصفحات أو أنواع المشاركة المخصصة.

لتمكين هذه الوظيفة ، قم بتضمين الشفرة التالية في functions.php :

add_theme_support( 'post-thumbnails' );

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

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

نحن نستفيد من add_image_size() الدالة التي ترشد WordPress إلى إنشاء نسخة من صورتنا المميزة بأحجامنا المحددة.

للقيام بذلك ، نضيف ما يلي إلى functions.php :

// regular sizeadd_image_size( 'regular', 400, 350, true );// medium sizeadd_image_size( 'medium', 650, 500, true );// large thumbnailsadd_image_size( 'large', 960, '' );

انظر كيف نعمل مع add_image_size() وظيفة للمحاصيل لينة أو المحاصيل الصلبة صورك على صفحة مخطوطة ووردبرس].

6. إعدادات عرض المرفق

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

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

للقيام بذلك ، نضيف ما يلي إلى موقعنا functions.php :

// show custom image sizes on when inserting mediafunction cake_show_image_sizes($sizes) {$sizes['regular'] = __( 'Our Regular Size', 'cake' );$sizes['medium'] = __( 'Our Medium Size', 'cake' );$sizes['large'] = __( 'Our Large Size', 'cake' );return $sizes;}  add_filter ('image_size_names_choose'، 'cake_show_image_sizes')؛ 

مع ذلك ، يمكننا اختيار أحجام الصور لدينا.

7. إضافة روابط تغذية (بدلاً من رمز RSS القديم في الرأس)

هذا واحد بسيط. إذا كنت تقوم ببناء موضوعات WordPress لفترة من الوقت ، فستتذكر الأيام التي كان عليك فيها تضمين التعليمات البرمجية يدويًا لإخراج موجز RSS في header.php. هذا النهج هو أنظف ويعتمد على wp_head() ربط العمل لإخراج التعليمات البرمجية اللازمة.

في ال functions.php الملف ، وتشمل ما يلي:

// Adds RSS feed links to for posts and comments.add_theme_support( 'automatic-feed-links' );

تأكد من أن لديك it in the , right before end of header.php it in the , right before end of &rgt;/head&lgt;

8. تحميل نطاق النص

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

من الأفضل استدعاء هذه الوظيفة من داخل after_setup_theme() action hook ie بعد أن يتم تنفيذ إجراءات الإعداد والتسجيل والتهيئة لمظهرك.

add_action('after_setup_theme', 'my_theme_setup');function my_theme_setup(){load_theme_textdomain('my_theme', get_template_directory() . '/languages');}

أضف الآن دليلاً باسم " languages في دليل الموضوع الخاص بك.

يمكنك معرفة المزيد عن وظيفة load_theme_textdomain () على صفحة مخطوطة ووردبرس] .

9. تحديد عرض المحتوى

عرض المحتوى هو ميزة في السمات التي تسمح لك بتعيين الحد الأقصى للعرض المسموح به لمقاطع الفيديو والصور ومحتويات oEmbed الأخرى في النسق.

وهذا يعني أنه عندما تقوم بلصق عنوان URL لموقع YouTube في المحرر ويقوم WordPress تلقائيًا بعرض الفيديو الفعلي على الواجهة الأمامية ، فإن هذا الفيديو لن يتجاوز العرض الذي قمت بتعيينه باستخدام $content_width متغير.

if ( ! isset( $content_width ) )$content_width = 600;

يوصي WordPress أيضًا بإضافة CSS التالية:

.size-auto,.size-full,.size-large,.size-medium,.size-thumbnail {max-width: 100%;height: auto;}

في حين أن هذا أمر مفيد ، إلا أنه ثقيل بعض الشيء. يحدد عرض المحتوى لجميع المحتويات. ماذا لو كنت تريد مقاطع فيديو ذات عرض أكبر على الصفحات أكثر من المشاركات وحجم أكبر في نوع المنشورات المخصصة؟ حاليا ، لا توجد طريقة لتحديد هذا. ومع ذلك هناك طلب المواصفات اقتراح إدراج $content_width متغير في المدمج في add_theme_support() .

10. الشريط الجانبي الديناميكي

يحتوي المظهر النموذجي على شريط جانبي واحد على الأقل. رمز تعريف الشريط الجانبي بسيط جدًا.

أضف التالي إلى حسابك functions.php :

if(function_exists('register_sidebar')){register_sidebar(array('name' => 'Main Sidebar','before_widget' => '','after_widget' => '','before_title' => '

','after_title' => '

',));}

هذا يسجل ويحدد الشريط الجانبي المسمى "الشريط الجانبي الرئيسي" وترميز HTML الخاص به.

يمكنك معرفة المزيد عن register_sidebar() تعمل على صفحة مخطوطة WordPress.

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

هنالك أيضا register_sidebars() الوظيفة التي تسمح لك بالتسجيل وتحديد عدة أشرطة جانبية في وقت واحد ولكنها لا تمنحك المرونة في إعطاء كل شريط جانبي جديد اسمًا فريدًا.

11. شكل رابط "أكثر" مخصص

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

ستحتاج على الأرجح إلى إضافة "رابط أكثر" وتحديد كيفية ظهور ذلك.

للقيام بهذا نحن بحاجة إلى إضافة الرمز التالي إلى موقعنا functions.php :

function new_excerpt_more($more) {global $post;return '...

يؤدي ذلك إلى إضافة علامات حذف " " بعد مقتطفات مباشرةً ويتضمن رابطًا المزيد من القراءة بعد علامتي فاصل. يمكنك إعادة تسمية وأسلوب read_more فئة CSS للارتباط كما هو مطلوب.

12. ترقيم الصفحات الأساسي

قد تحتوي كل سمة على احتياجات مختلفة لترقيم الصفحات ، ولكن من الأفضل دائمًا البدء بوظائف افتراضية جيدة: previous_posts_link() و next_posts_link() .

function cake_content_nav( $nav_id ) {global $wp_query;if ( $wp_query->max_num_pages > 1 ) : ?>

13. إعادة توجيه بعد تفعيل الموضوع

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

if (is_admin() && isset($_GET['activated']) && $pagenow == "themes.php")wp_redirect('themes.php?page=themeoptions');

إيلاء اهتمام خاص ل wp_redirect() وظيفة. تأكد من استبدال " themes.php?page=themeoptions "مع عنوان URL لصفحتك.

14. إخفاء شريط المسؤول (أثناء التطوير)

وأثناء التطوير ، أجد في بعض الأحيان أن شريط (أداة) المسؤول في WordPress يشتت الانتباه تمامًا.

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

في حين لا يزال تصميم وتطوير ، وأنا أحب لإخفاء شريط المسؤول مع هذه الوظيفة المفيدة.

show_admin_bar( false );

هل لديك أي وظائف مفضلة للقفز بدء تطوير قالب وورد؟ ما هي الوظائف التي تود أن تراها؟ اسمحوا لنا أن نعرف في التعليقات.

صورة مميزة / صورة مصغرة ، صورة متعددة الأدوات عبر Shutterstock.