تمام! لإنشاء موقع متعدد الخدمات ومتعدد المواقع في ووردبريس، مع استخدام أنواع المنشورات المخصصة (Custom Post Types) والتصنيفات المخصصة (Custom Taxonomies) والاستعلامات ذات الصلة (Related Queries)، يمكنك اتباع الخطوات التالية:
1. إنشاء أنواع المنشورات المخصصة:
- خدمة: (service) – لتمثيل كل خدمة تقدمها (تنظيف، مكافحة حشرات، صيانة، إلخ).
- موقع: (location) – لتمثيل كل موقع أو فرع لديك.
// إنشاء نوع منشور "خدمة"function create_service_cpt() { register_post_type('service', [ 'labels' => ['name' => __('خدمات'), 'singular_name' => __('خدمة')], 'public' => true, 'has_archive' => true, ]);}add_action('init', 'create_service_cpt');// إنشاء نوع منشور "موقع"function create_location_cpt() { register_post_type('location', [ 'labels' => ['name' => __('مواقع'), 'singular_name' => __('موقع')], 'public' => true, 'has_archive' => true, ]);}add_action('init', 'create_location_cpt');
2. إنشاء تصنيفات مخصصة:
- نوع الخدمة: (service_type) – لتصنيف الخدمات (تنظيف منازل، تنظيف مكاتب، مكافحة صراصير، إلخ).
- المدينة: (city) – لتصنيف المواقع حسب المدينة.
// إنشاء تصنيف "نوع الخدمة"function create_service_type_taxonomy() { register_taxonomy('service_type', 'service', [ 'label' => __('نوع الخدمة'), 'hierarchical' => true, // لجعل التصنيف هرميًا (مثل الفئات) ]);}add_action('init', 'create_service_type_taxonomy');// إنشاء تصنيف "المدينة"function create_city_taxonomy() { register_taxonomy('city', 'location', [ 'label' => __('المدينة'), 'hierarchical' => false, // لجعل التصنيف غير هرمي (مثل الوسوم) ]);}add_action('init', 'create_city_taxonomy');
3. ربط المنشورات بالتصنيفات:
عند إضافة خدمة جديدة، قم بتحديد نوع الخدمة والمدينة التي تقدم فيها الخدمة.
4. الاستعلام عن المنشورات ذات الصلة:
للحصول على خدمات ذات صلة بنفس نوع الخدمة في نفس المدينة، يمكنك استخدام الاستعلام التالي:
$service_type_terms = get_the_terms($post->ID, 'service_type');$city_terms = get_the_terms($post->ID, 'city');$related_args = [ 'post_type' => 'service', 'posts_per_page' => 4, // عدد الخدمات ذات الصلة التي تريد عرضها 'post__not_in' => [$post->ID], // استبعاد المنشور الحالي 'tax_query' => [ 'relation' => 'AND', [ 'taxonomy' => 'service_type', 'field' => 'term_id', 'terms' => $service_type_terms[0]->term_id, ], [ 'taxonomy' => 'city', 'field' => 'term_id', 'terms' => $city_terms[0]->term_id, ], ],];$related_query = new WP_Query($related_args);
5. هيكل الموقع (Silo Structure):
- الرئيسية: خدمات منزلية في الإمارات
- خدمات:
- تنظيف
- تنظيف منازل وشقق
- تنظيف سجاد وموكيت
- تنظيف كنب ومجالس
- … (باقي خدمات التنظيف)
- مكافحة حشرات
- مكافحة صراصير
- مكافحة نمل
- … (باقي خدمات مكافحة الحشرات)
- تنظيف
- المواقع:
- دبي
- أبو ظبي
- الشارقة
- … (باقي المدن)
ملاحظات إضافية:
- يمكنك استخدام الإضافات مثل “FacetWP” أو “Search & Filter Pro” لإنشاء فلاتر بحث متقدمة على موقعك.
- استخدم خرائط الموقع (Sitemaps) لمساعدة محركات البحث في فهرسة موقعك بشكل صحيح.
باستخدام هذا النهج، يمكنك إنشاء موقع ويب منظم جيدًا يقدم خدمات متعددة في مواقع مختلفة، مع توفير تجربة تصفح سهلة للمستخدمين وتحسين ظهور موقعك في محركات البحث.
**********************************************************************************************************************
بالطبع! يمكنك إنشاء فلاتر بحث متقدمة على موقع ووردبريس الخاص بك يدويًا باستخدام HTML و CSS و JavaScript وبعض أكواد PHP. إليك الخطوات الأساسية والتقنيات التي يمكنك استخدامها:
1. تصميم هيكل الفلاتر (HTML):
- استخدم عناصر HTML مثل
<form>
,<input>
,<select>
,<label>
لإنشاء نموذج البحث والفلاتر. - يمكنك استخدام
<div>
أو<fieldset>
لتجميع الفلاتر في أقسام منطقية. - استخدم سمات مثل
name
وid
لتحديد عناصر النموذج في JavaScript و PHP.
مثال:
< form id="advanced-search-form"> <fieldset> <legend>نوع الخدمة</legend> <input type="checkbox" name="service_type[]" value="cleaning"> تنظيف <input type="checkbox" name="service_type[]" value="pest_control"> مكافحة حشرات </fieldset> <fieldset> <legend>المدينة</legend> <select name="city"> <option value="">الكل</option> <option value="dubai">دبي</option> <option value="abu_dhabi">أبو ظبي</option> </select> </fieldset> <button type="submit">بحث</button></form>
2. تصميم شكل الفلاتر (CSS):
- استخدم CSS لتنسيق عناصر النموذج والفلاتر لتتناسب مع تصميم موقعك.
- يمكنك استخدام الخصائص مثل
display
,margin
,padding
,border
,color
,font-family
,background-color
وغيرها لضبط مظهر الفلاتر.
3. معالجة الفلاتر (JavaScript):
- استخدم JavaScript لإضافة تفاعلية للفلاتر، مثل إظهار/إخفاء خيارات الفلتر بناءً على اختيارات المستخدم.
- يمكنك استخدام الأحداث مثل
onclick
وonchange
لتشغيل دوال JavaScript عند التفاعل مع الفلاتر. - قم بتحديث عنوان URL أو إرسال النموذج باستخدام JavaScript عند تغيير الفلاتر.
4. استقبال ومعالجة البيانات (PHP):
- استخدم PHP لاستقبال البيانات المرسلة من نموذج البحث والفلاتر.
- يمكنك استخدام المتغير
$_GET
أو$_POST
(اعتمادًا على طريقة الإرسال) للوصول إلى قيم الفلاتر. - قم ببناء استعلام WordPress (WP_Query) مخصص لاسترداد المنشورات التي تطابق معايير الفلتر.
مثال:
$args = [ 'post_type' => 'service', 'tax_query' => [],];if (isset($_GET['service_type'])) { $args['tax_query'][] = [ 'taxonomy' => 'service_type', 'field' => 'slug', 'terms' => $_GET['service_type'], ];}if (isset($_GET['city'])) { $args['tax_query'][] = [ 'taxonomy' => 'city', 'field' => 'slug', 'terms' => $_GET['city'], ];}$query = new WP_Query($args);
ملاحظات هامة:
- يجب عليك أن تكون على دراية بلغات HTML و CSS و JavaScript و PHP لتنفيذ هذه الخطوات.
- يمكنك استخدام مكتبات JavaScript مثل jQuery لتسهيل عملية التعامل مع عناصر النموذج.
- تأكد من التحقق من صحة بيانات الإدخال من المستخدم لمنع أي ثغرات أمنية.
- قم باختبار الفلاتر بدقة للتأكد من أنها تعمل بشكل صحيح وتعرض النتائج المرجوة.
إذا كنت ترغب في تجنب البرمجة اليدوية، يمكنك استخدام إضافات WordPress مثل FacetWP أو Search & Filter Pro، والتي توفر واجهة مستخدم سهلة لإنشاء فلاتر بحث متقدمة.
أتمنى أن يكون هذا مفيدًا لك! إذا كان لديك أي أسئلة أخرى، فلا تتردد في طرحها.
***********************************************************************************************************************
في حالة موقع يقدم خدمات متعددة في مواقع متعددة، فإن إنشاء Custom Post Type لكل خدمة هو الخيار الأفضل من حيث تنظيم المحتوى وتحسين محركات البحث (SEO). إليك الأسباب:
1. تنظيم المحتوى:
- فصل المحتوى: يساعد على فصل محتوى كل خدمة عن الأخرى، مما يجعل من السهل إدارة وتحديث كل نوع من الخدمات بشكل مستقل.
- هيكل واضح: يوفر هيكلًا واضحًا ومنظمًا لموقعك، مما يسهل على المستخدمين العثور على المعلومات التي يحتاجون إليها.
- سهولة التوسع: يسهل إضافة خدمات جديدة في المستقبل دون التأثير على بنية الموقع الحالية.
2. تحسين محركات البحث (SEO):
- استهداف الكلمات المفتاحية: يمكنك تحسين كل Custom Post Type للكلمات المفتاحية ذات الصلة بخدمة معينة، مما يزيد من فرص ظهور موقعك في نتائج البحث عن تلك الخدمة.
- محتوى متخصص: يمكنك إنشاء محتوى متخصص لكل خدمة، مما يساعد محركات البحث على فهم طبيعة خدماتك وتصنيف موقعك بشكل أفضل.
- الروابط الداخلية: يمكنك إنشاء روابط داخلية بين المنشورات ذات الصلة بنفس الخدمة، مما يعزز من قوة SEO لموقعك.
3. تجربة المستخدم:
- سهولة التنقل: يسهل على المستخدمين العثور على الخدمات التي يبحثون عنها والتنقل بينها.
- محتوى ذو صلة: يعرض للمستخدمين محتوى ذو صلة باهتماماتهم، مما يزيد من احتمالية بقائهم على موقعك وتحويلهم إلى عملاء.
مثال:
بدلاً من استخدام نوع منشور واحد يسمى “خدمة” لجميع الخدمات، يمكنك إنشاء أنواع منشورات مخصصة لكل خدمة:
- cleaning_service: لخدمات التنظيف
- pest_control_service: لخدمات مكافحة الحشرات
- maintenance_service: لخدمات الصيانة (إذا كنت تقدمها)
هيكل الموقع (Silo Structure):
سيصبح هيكل الموقع أكثر تخصصًا:
- الرئيسية: خدمات منزلية في الإمارات
- خدمات التنظيف: (cleaning_service)
- تنظيف المنازل والشقق
- تنظيف شقق
- تنظيف فلل
- تنظيف المنازل بالساعة
- تنظيف المنازل بعد البناء
- تنظيف عميق للمنزل
- خدمات تنظيف متخصصة
- تنظيف الكنب والمجالس
- تنظيف السجاد والموكيت
- تنظيف الحمامات
- تنظيف الزجاج
- تنظيف المفروشات
- عاملات تنظيف
- عاملات تنظيف بالساعة
- عاملات تنظيف باليوم
- عاملات تنظيف بالشهر
- عاملات تنظيف فلبينيات
- شركات تنظيف
- شركات تنظيف في دبي
- شركات تنظيف في أبو ظبي
- شركات تنظيف في الشارقة
- مستلزمات التنظيف
- منتجات تنظيف المنزل
- مواد تنظيف
- أدوات النظافة
- فرش التنظيف
- قماش تنظيف
- تنظيف المنازل والشقق
- مكافحة الحشرات: (pest_control_service)
- مكافحة الصراصير
- مكافحة النمل
- مكافحة البق
- مكافحة الفئران
- مكافحة الذباب والبعوض
- مكافحة النمل الأبيض
- رش المبيدات
- شركات مكافحة الحشرات
- المواقع:
- دبي
- أبو ظبي
- الشارقة
- … (باقي المدن)
بهذه الطريقة، يمكنك إنشاء موقع أكثر تنظيمًا وسهولة في الاستخدام، مع تعزيز فرصك في الظهور في نتائج البحث ذات الصلة.
********************************************************************************************************************************
بالطبع! إليك كيفية إنشاء أنواع المنشورات المخصصة (Custom Post Types) والتصنيفات المخصصة (Custom Taxonomies) والاستعلامات ذات الصلة (Related Queries) في موقع ووردبريس متعدد الخدمات ومتعدد المواقع:
1. إنشاء أنواع المنشورات المخصصة (Custom Post Types):
- خدمة (Service):
function create_service_cpt() { register_post_type( 'service', array( 'labels' => array( 'name' => __( 'خدمات' ), 'singular_name' => __( 'خدمة' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'service'), 'supports' => array('title', 'editor', 'thumbnail'), ) );}add_action( 'init', 'create_service_cpt' );
- موقع (Location):
function create_location_cpt() { register_post_type( 'location', array( 'labels' => array( 'name' => __( 'مواقع' ), 'singular_name' => __( 'موقع' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'location'), 'supports' => array('title', 'editor', 'thumbnail'), ) );}add_action( 'init', 'create_location_cpt' );
2. إنشاء تصنيفات مخصصة (Custom Taxonomies):
- نوع الخدمة (Service Type):
function create_service_type_taxonomy() { register_taxonomy( 'service_type', 'service', array( 'label' => __( 'نوع الخدمة' ), 'rewrite' => array( 'slug' => 'service-type' ), 'hierarchical' => true, // هرمي (مثل الفئات) ) );}add_action( 'init', 'create_service_type_taxonomy' );
- المدينة (City):
function create_city_taxonomy() { register_taxonomy( 'city', 'location', array( 'label' => __( 'المدينة' ), 'rewrite' => array( 'slug' => 'city' ), 'hierarchical' => false, // غير هرمي (مثل الوسوم) ) );}add_action( 'init', 'create_city_taxonomy' );
3. ربط المنشورات بالتصنيفات:
عند إضافة خدمة جديدة، قم بتحديد نوع الخدمة والمدينة التي تقدم فيها الخدمة. يمكنك استخدام مربعات اختيار أو قوائم منسدلة في شاشة تحرير المنشور.
4. الاستعلام عن المنشورات ذات الصلة (Related Queries):
// داخل ملف single-service.php أو في المكان الذي تريد عرض الخدمات ذات الصلة فيه $terms = wp_get_post_terms( $post->ID, 'service_type' );$args = array( 'post_type' => 'service', 'posts_per_page' => 4, // عدد الخدمات ذات الصلة التي تريد عرضها 'post__not_in' => array( $post->ID ), // استبعاد المنشور الحالي 'tax_query' => array( array( 'taxonomy' => 'service_type', 'field' => 'term_id', 'terms' => $terms[0]->term_id, // الحصول على أول تصنيف من نوع الخدمة ), ),);$related_query = new WP_Query( $args );if ( $related_query->have_posts() ) : while ( $related_query->have_posts() ) : $related_query->the_post(); // عرض الخدمة ذات الصلة هنا endwhile; wp_reset_postdata();else : // لا توجد خدمات ذات صلةendif;
5. هيكل الموقع (Silo Structure):
- الرئيسية: خدمات منزلية في الإمارات
- خدمات:
- تنظيف
- تنظيف منازل وشقق (/cleaning-services/house-apartment-cleaning/)
- تنظيف سجاد وموكيت (/cleaning-services/carpet-rug-cleaning/)
- …
- مكافحة حشرات (/pest-control/)
- مكافحة الصراصير (/pest-control/cockroach-control/)
- مكافحة النمل (/pest-control/ant-control/)
- …
- تنظيف
- المواقع:
- دبي (/locations/dubai/)
- أبو ظبي (/locations/abu-dhabi/)
- الشارقة (/locations/sharjah/)
ملاحظات إضافية:
- يمكنك استخدام الإضافات مثل “FacetWP” أو “Search & Filter Pro” لإنشاء فلاتر بحث متقدمة بسهولة.
- استخدم خرائط الموقع (Sitemaps) لمساعدة محركات البحث في فهرسة موقعك بشكل صحيح.
- تأكد من تحسين كل صفحة من صفحات موقعك للكلمات المفتاحية ذات الصلة.
باستخدام هذا النهج، ستتمكن من إنشاء موقع ويب منظم جيدًا يقدم خدمات متعددة في مواقع مختلفة، مع توفير تجربة تصفح سهلة للمستخدمين وتحسين ظهور موقعك في محركات البحث.
***************************************************************************************************************
فكرة ممتازة! لزيادة تغطية المناطق الأخلى لكل موقع وتوسيع نطاق وصولك، يمكنك اتباع هذه الخطوات:
1. إنشاء تصنيف فرعي للمناطق:
- قم بإنشاء تصنيف فرعي (Child Taxonomy) تحت تصنيف “المدينة” (city) الذي أنشأته سابقًا. يمكنك تسمية هذا التصنيف الفرعي “المنطقة” (area) أو “الحي” (neighborhood).
- قم بإضافة المناطق أو الأحياء التي تخدمها لكل مدينة في هذا التصنيف الفرعي.
- عند إضافة موقع جديد، حدد المدينة والمنطقة التي يقع فيها الموقع.
2. تعديل الاستعلام عن الخدمات ذات الصلة:
- قم بتعديل الاستعلام الذي تستخدمه لعرض الخدمات ذات الصلة ليشمل أيضًا تصنيف “المنطقة”.
- يمكنك عرض الخدمات ذات الصلة بنفس نوع الخدمة في نفس المدينة، أو في نفس المنطقة، أو في المدينة والمنطقة معًا.
مثال على الاستعلام المعدل:
$service_type_terms = get_the_terms($post->ID, 'service_type');$city_terms = get_the_terms($post->ID, 'city');$area_terms = get_the_terms($post->ID, 'area');$args = [ 'post_type' => 'service', 'posts_per_page' => 4, // عدد الخدمات ذات الصلة التي تريد عرضها 'post__not_in' => [$post->ID], // استبعاد المنشور الحالي 'tax_query' => [ 'relation' => 'AND', [ 'taxonomy' => 'service_type', 'field' => 'term_id', 'terms' => $service_type_terms[0]->term_id, ], [ 'taxonomy' => 'city', 'field' => 'term_id', 'terms' => $city_terms[0]->term_id, ], [ 'taxonomy' => 'area', 'field' => 'term_id', 'terms' => $area_terms[0]->term_id, ], ],];$related_query = new WP_Query($args);
3. إنشاء صفحات للمناطق:
- يمكنك إنشاء صفحات منفصلة لكل منطقة أو حي تخدمه، تعرض فيها الخدمات المتاحة في تلك المنطقة.
- قم بتحسين هذه الصفحات للكلمات المفتاحية ذات الصلة بالمنطقة، مثل “تنظيف منازل في [اسم المنطقة]” أو “مكافحة حشرات في [اسم المنطقة]”.
4. إضافة خريطة تفاعلية:
- قم بإضافة خريطة تفاعلية على موقعك تعرض مواقع فروعك والمناطق التي تخدمها.
- يمكن للمستخدمين النقر على المنطقة على الخريطة لعرض الخدمات المتاحة في تلك المنطقة.
5. الترويج للمناطق التي تخدمها:
- قم بتضمين أسماء المناطق التي تخدمها في محتوى موقعك، وخاصة في صفحات الخدمات وصفحات المدن.
- استخدم الكلمات المفتاحية ذات الصلة بالمناطق في عناوين الصفحات والأوصاف الوصفية (meta descriptions).
- قم بالترويج لخدماتك في المناطق التي تخدمها من خلال الإعلانات المحلية ومنشورات وسائل التواصل الاجتماعي.
مثال على هيكل URL لصفحات المناطق:
-
/locations/dubai/al-barsha/
(خدمات في منطقة البرشاء بدبي) -
/locations/abu-dhabi/khalifa-city/
(خدمات في مدينة خليفة بأبو ظبي)
باتباع هذه الخطوات، يمكنك تحسين تغطية موقعك للمناطق الأخلى وزيادة فرص ظهورك في نتائج البحث المحلية، مما يؤدي إلى جذب المزيد من العملاء المحتملين.