إعداد قواعد إعادة الكتابة المخصصة للأنواع المخصصة
تعتبر إعادة كتابة الروابط (Custom Rewrite Rules) من العناصر المهمة في تحسين نظام إدارة المحتوى بطريقة تلبي احتياجات المستخدم وتساعد على تحسين تجربة الزائر في قضية تعديل الروابط الخاصة بأنواع المحتوى المخصصة (Custom Post Types – CPT) في ووردبريس. من المهم أن نفهم كيفية إنشاء روابط مخصصة بطريقة صحيحة لضمان عرض المحتوى بالطريقة المرغوبة.
فهم CPT وإعادة كتابة الروابط
عند إنشاء نوع محتوى مخصص مثل "مكان" (Place)، قد ترغب في إضافة صفحات مخصصة له. على سبيل المثال، إذا كانت لديك روابط على شكل /places/name
، يمكنك استخدام إعادة كتابة الروابط لإنشاء روابط إضافية مثل /place/name/customlandingpage
. تتمثل المهمة الرئيسية هنا في إضافة قاعدة إعادة الكتابة المناسبة.
تنفيذ قاعدة إعادة الكتابة
للبدء، يجب عليك استخدام دالة add_rewrite_rule()
لإضافة قاعدة جديدة. يمكن أن تبدو الدالة كالتالي:
function custom_rewrite_rule() {
add_rewrite_rule("^place/([^/]+)/customlandingpage/?",'index.php?post_type=place&place=$matches[1]&landingpage=1','top');
}
add_action('init', 'custom_rewrite_rule', 1);
إضافة هذه القاعدة إلى النظام سيضمن أنه عند زيارة عنوان URL، سيتم توجيه الزيارة إلى صفحة مخصصة بدلاً من إعادة توجيهها إلى /places/name
.
التأكد من تسجيل CPT بشكل صحيح
إليك كيفية تسجيل نوع المحتوى المخصص "مكان" باستخدام الكود التالي:
function cpt_place() {
$args = array(
'supports' => array( 'title', 'custom-fields', 'thumbnail', 'page-attributes' ),
'capability_type' => 'page',
'rewrite' => array(
'with_front' => false,
'pages' => false,
'ep_mask' => EP_ALL,
'slug' => 'places',
),
);
register_post_type('place', $args);
}
add_action('init', 'cpt_place', 10);
هنا، تضمن المعاملات المقدمة أن نوع المحتوى "مكان" يتمتع بالإعدادات اللازمة، مما يسهل عليه عرض المحتوى بشكل صحيح.
الإضافات المهمة للتحكم في المتغيرات والاستعلامات
ستحتاج أيضًا إلى إضافة متغيرات استعلام مخصصة لتسهيل العملية. استخدم الكود التالي لإضافة المتغيرات:
function custom_query_vars($vars) {
$vars[] = 'place';
$vars[] = 'landingpage';
return $vars;
}
add_filter('query_vars', 'custom_query_vars');
ثم، يجب أن تتأكد من أن قوالب الصفحات تستجيب للمتغيرات المخصصة المضافة، عن طريق تعديل طريقة تحميل القوالب باستخدام الكود:
function load_custom_template($template) {
if (get_query_var('place') && get_query_var('landingpage')) {
$new_template = locate_template(array('landingpages.php'));
if (!empty($new_template)) {
return $new_template;
}
}
return $template;
}
add_filter('template_include', 'load_custom_template', 99);
استنتاجات واعتبارات إضافية
على الرغم من أنك قد نفذت جميع الخطوات بشكل صحيح، إذا استمر توجيه الزوار إلى /places/name
بدلاً من عرض الصفحة المخصصة، فقد تحتاج إلى مراجعة قواعد إعادة الكتابة (Rewrite Rules) الخاصة بك.
تعتبر بعد إجراء جميع هذه الخطوات التحقق من إصدار الرابط وتحديث الإعدادات أمرًا ضروريًا، فقد يتطلب أحيانًا إعادة حفظ إعدادات الروابط الدائمة (Permalinks) لتفعيل التغييرات.
باختصار، سهّلت إعادة كتابة الروابط (Custom Rewrite Rules) لأنواع المحتوى المخصصة (CPT) تجربة المستخدم عند الوصول إلى صفحات معينة، ولكن يجب تنفيذها بشكل دقيق لضمان أن جميع الروابط تعمل كما هو متوقع.