إتقان أنواع المقالات المخصصة في ووردبريس: دليلًا عملي كاملًا من الإنشاء إلى النشر.

قراءة 3 دقائق
2026-03-17
2026-06-04
2,409
أنا أحصل على عمولة عند التسوق عبر الروابط أدناه، ولا يُضاف أي تكلفة عليك.

ما هي أنواع المقالات المخصصة في WordPress؟

يوفر ووردبريس بشكل افتراضي نوعين من المحتوى هما “المقالات” (Articles) و“الصفحات” (Pages)، لكن هذا غالبًا ما يكون غير كافٍ عند بناء مواقع إلكترونية معقدة. في مثل هذه الحالات، يكون من الضروري استخدام أنواع مقالات مخصصة (Custom Post Types). CPTهذه ميزة أساسية في ووردبريس (WordPress)، تسمح للمطورين بإنشاء أنواع محتوى جديدة تحتوي على هياكل بيانات مستقلة وواجهات إدارة خلفية. يمكن اعتبارها نوعًا من “قوالب المحتوى” (content templates)، تُستخدم لإدارة أنواع معينة من المعلومات.

على سبيل المثال، يمكن لموقع تقييمات الأفلام أن يستخدم النوع الافتراضي “مقال” لكتابة الأخبار، وفي الوقت نفسه يمكنه إنشاء نوع مقالات مخصص يسمى “فيلم” لإدارة معلومات الأفلام بشكل منفصل، حيث يمكن أن تتضمن كل معلومة عن فيلم حقولًا خاصة مثل المخرج والممثلين الرئيسيين والتقييمات. كما يمكن لموقع تجاري إلكتروني إنشاء نوع “منتج”, بينما يمكن لموقع مدرسي إنشاء أنواع مثل “دورة دراسية” أ CPTتم فصل أنواع المحتويات المختلفة بشكل واضح، مما جعل إدارة البيانات أكثر كفاءة، ووفر أيضًا أساسًا متينًا لتخصيص القوالب وتوسيع الوظائف في المستقبل.

كيفية إنشاء نوع مقالات مخصص

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

القراءة الموصى بها الإلمام الشامل بأنواع المقالات المخصصة في ووردبريس: من الإنشاء إلى التطبيقات المتقدمة

تسجيل أنواع المقالات المخصصة عن طريق الكود

أكثر الطرق استاندارديةً وتوصيةً هو استخدام… (The most standard and recommended method is to use…) functions.php يتم استخدامه إما في ملف أو كإضافة وظيفية مستقلة. register_post_type يتم تسجيل الدالة. تقبل هذه الدالة معلمتين: معرف نوع المقالة المخصص (slug) ومصفوفة تحتوي على جميع المعلمات الأخرى.

خادم ووردبريس من شركة UltaHost
ضمان استرداد المال خلال 30 يومًا، عرض نطاق ترددي وقواعد بيانات غير محدودين، حماية مجانية ضد هجمات DDoS، خصم 50% عند الشراء لمدة 3 سنوات (السعة المتاحة: 501–4 تيرابايت).

فيما يلي مثال أساسي لإنشاء نوع مقالة مخصص يُسمى “أفلام”:

function create_movie_post_type() {
    $labels = array(
        'name'               => '电影',
        'singular_name'      => '电影',
        'menu_name'          => '电影管理',
        'add_new_item'       => '添加新电影',
        'edit_item'          => '编辑电影',
        'view_item'          => '查看电影',
    );
    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'movie' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'menu_icon'          => 'dashicons-video-alt',
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
    );
    register_post_type( 'movie', $args );
}
add_action( 'init', 'create_movie_post_type' );

هذا الكود يعمل من خلال… add_action يتم تنفيذ الكوود الموجود في الخطافات (“hooks”) أثناء عملية تهيئة (إعداد) ووردبريس (WordPress). create_movie_post_type دالة… تم تعريف علامات العرض داخل هذه الدالة. $labels والمعلمات الأساسية $argsتشمل المعايير الرئيسية:public يتحكم هذا الخيار في ما إذا كان سيتم عرض المحتوى في الخلفية (الخادم) أو في واجهة المستخدم (الجزء الأمامي من التطبيق).rewrite تعريف قواعد إعادة كتابة عناوين URL: عند الوصول إلى رابط فيلم معين، سيتم تغيير عنوان الرابط تلقائيًا ليتوافق مع القواعد المحددة. yoursite.com/movie/some-moviehas_archive تحديد ما إذا كانت هناك صفحات أرشيف (مثل…) yoursite.com/movie/);supports تحدد المصفوفة الميزات المدعومة من هذا النوع من المحتوى، مثل العناوين، ومحررات النصوص، والصور المميزة، وغيرها.

استخدم الإضافات (plugins) لإنشاء أنواع مقالات مخصصة.

بالنسبة للمستخدمين غير الملمين بالكود، تعتبر الإضافات (plugins) خيارًا ممتازًا للبدء بسرعة. إضافتا “Custom Post Type UI” و“Toolset Types” من بين أكثر الإضافات شيوعًا؛ فهما توفران واجهات مستخدم سهلة الاستخدام، تسمح لك بتعريف أنواع المنشورات (post types) الخاصة بك عن طريق تحديد الخيارات المناسبة وملء النماذج. CPT مختلف الخصائص، مثل العلامات (tags)، مستوى العلنية (publicity level)، والميزات المدعومة (supported features)، وغيرها.

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

القراءة الموصى بها دليل تطوير موضوعات ووردبريس: بناء موضوعات مخصصة عالية الأداء من الصفر.

إضافة حقول مخصصة لأنواع المقالات المعدلة

نوع المقالات المخصص (Custom Article Types) يوفر في الأساس إطارًا هيكليًا فقط؛ لكي يتمكن من تخزين معلومات فريدة بشكل فعال (مثل تاريخ عرض فيلم أو اسم المخرج)، من الضروري استخدام الحقول المخصصة (Custom Fields) أو المربعات الوصفية المخصصة (Meta Boxes) ذات الإمكانيات الأقوى. يحتوي ووردبريس (WordPress) على لوحة تحكم أصلية لإدارة الحقول المخصصة، لكن واجهتها بسيطة وميزاتها محدودة، مما يجعلها غير مناسبة لمحرري المحتوى.

استخدم إضافة الحقول المخصصة المتقدمة.

إن إضافة Advanced Custom Fields (ACC) هي المعيار الصناعي للتعامل مع الحقول المخصصة. تسمح لك باستخدام واجهة رسومية لإنشاء وإدارة الحقول المخصصة لأنواع المقالات المختلفة (بما في ذلك مقالاتك الخاصة). CPTيمكن إنشاء مجموعات من الحقول من أنواع مختلفة، مثل النصوص، الصور، مربعات الاختيار، والعلاقات التابعة (الارتباطات بين الحقول)، وغيرها.

على سبيل المثال، بالنسبة لكلمة “فيلم”.” CPT قم بإنشاء مجموعة حقول تتضمن الحقول التالية: “المخرج”، “البطولة”، و“سنة الإصدار”. بعد تثبيت وتفعيل إضافة ACF (Advanced Custom Fields)، اذهب إلى صفحة إعداداتها، وأنشئ مجموعة حقول جديدة، وحدد قاعدة توزيع المجموعة بحيث تكون “نوع المقالة يساوي فيلم”. بعد ذلك، قم بإضافة كل من حقل “المخرج” (حقل نصي)، وحقل “البطولة” (حقل منطقة نصية)، وحقل “سنة الإصدار” (حقل رقمي) واحدًا تلو الآخر. بعد حفظ التغييرات، ستظهر هذه المربعات الإدخالية بشكل واضح أثناء تحرير محتويات الأفلام في الواجهة الخلفية.

استضافة.كوم استضافة مشتركة
أداء عالٍ مع وحدات المعالجة المركزية AMD EPYC، ووحدات تخزين NVMe SSD وLiteSpeed، ودعم داخلي متخصص على مدار الساعة طوال أيام الأسبوع، وتدابير أمنية متقدمة بما في ذلك SSL، وقوة الغاشمة، والحماية من البرامج الضارة والحماية من DDoS، وتوفير ما يصل إلى 731 تيرابايت 4 تيرابايت

إنشاء مربعات وصف مخصصة باستخدام الكود

إذا كنت ترغب في السيطرة الكاملة من خلال الكود، فيمكنك ذلك بالتأكيد. CPT تطوير مربعات وصف مخصصة (custom meta boxes) يتطلب استخدام واجهة برمجة التطبيقات (API) الخاصة بمربعات الوصف في ووردبريس (WordPress’s meta box API) بالإضافة إلى دوال التخزين المناسبة. على الرغم من أن حجم الكود قد يكون كبيرًا

فيما يلي مثال مبسط يوضح كيفية إضافة حقل “المخرج” لـ “الفيلم”:

// 1. 添加元框
function add_movie_director_meta_box() {
    add_meta_box(
        'movie_director_meta_box', // 元框ID
        '导演信息', // 元框标题
        'render_movie_director_meta_box', // 回调函数,用于输出HTML
        'movie', // 目标文章类型
        'side', // 位置
        'default' // 优先级
    );
}
add_action( 'add_meta_boxes', 'add_movie_director_meta_box' );

// 2. 渲染元框内容
function render_movie_director_meta_box( $post ) {
    // 获取已保存的值
    $director = get_post_meta( $post->ID, '_movie_director', true );
    // 添加安全字段
    wp_nonce_field( 'movie_director_nonce_action', 'movie_director_nonce' );
    // 输出HTML
    echo '<label for="movie_director">导演姓名:</label>';
    echo '<input type="text" id="movie_director" name="movie_director" value="' . esc_attr( $director ) . '" style="width:100%;" />';
}

// 3. 保存元框数据
function save_movie_director_meta_data( $post_id ) {
    // 检查nonce、权限、自动保存等
    if ( ! isset( $_POST['movie_director_nonce'] ) || ! wp_verify_nonce( $_POST['movie_director_nonce'], 'movie_director_nonce_action' ) ) {
        return;
    }
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }
    // 保存数据
    if ( isset( $_POST['movie_director'] ) ) {
        update_post_meta( $post_id, '_movie_director', sanitize_text_field( $_POST['movie_director'] ) );
    }
}
add_action( 'save_post', 'save_movie_director_meta_data' );

يقوم هذا الكود بإنشاء عنصر واجهة مستخدم (meta box) يظهر في الشريط الجانبي، ويحتوي على حقل لإدخال اسم المخرج. يتم استخدام إجراءات التحقق من الأمان القياسية في ووردبريس أثناء حفظ البيانات، وذلك يشمل… nonce التحقق، وفحص الصلاحيات، ومنع إعادة المعالجة أثناء عمليات الحفظ التلقائي. البيانات المحفوظة تمر عبر… update_post_meta الدوال مخزنة في… wp_postmeta في الجدول.

القراءة الموصى بها دليل استخدام إضافة WooCommerce: من التثبيت والتكوين إلى تشغيل المتجر بشكل كامل

إنشاء ملف قالب لنوع مقالة مخصص

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

قالب نوع مقال واحد

عندما يقوم المستخدم بزيارة محتوى فيلم واحد (مثل… yoursite.com/movie/inceptionعند البحث عن ملفات القوالب، يقوم WordPress بتنفيذ العملية وفقًا للترتيب التالي:
1. single-movie.php (الأكثر تحديدًا)
2. single.php
3. singular.php
4. index.php

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.

لذلك، فإن أفضل ممارسة هي إنشاء ملف باسم… (The best practice is to create a file named…) داخل مجلد المواضيع الخاص بك. single-movie.php ملف… في هذا الملف، يمكنك تخصيص طريقة عرض الفيلم بشكل كامل، واستخدام الحقول المخصصة التي قمت بإنشائها مسبقًا.

<article id="post-<?php the_ID(); ?>" no numeric noise key 1008>
    <header class="entry-header">
        <h1 class="entry-title"></h1>
        <div class="entry-meta">
            <span>导演:</span>
        </div>
    </header>
    <div class="entry-content">
        
        <!-- 显示其他自定义字段,如主演、上映年份 -->
        <p><strong>البطولة:</strong><?php the_field( 'lead_actor' ); ?></p>
        <p><strong>سنة العرض:</strong><?php the_field( 'release_year' ); ?></p>
    </div>
</article>

إذا تم استخدام إضافة ACF، فيمكن الاستفادة من الميزات والوظائف التي توفرها. the_field() تقوم الدالة بإخراج قيم الحقول بسهولة. إذا كانت الحقول محفوظة باستخدام كود مخصص، فسيتم استخدام هذا الكود لإخراج القيم. get_post_meta() دالة.

قالب صفحة الأرشيف

عندما يقوم المستخدم بزيارة صفحة قائمة الأفلام (مثل)... yoursite.com/movie/عند تنفيذ هذه العملية، سيبحث ووردبريس عن:
1. archive-movie.php
2. archive.php
3. index.php

إنشاء archive-movie.php يمكنك استخدام دورات (loops) في WordPress لعرض قائمة بجميع الأفلام داخل الملف، كما يمكنك تخصيص عمليات البحث أو استخدام المراحل (pagination) لتنظيم عرض النتائج.

<h1>مكتبة الأفلام</h1>

    <article>
        <h2><a href="/ar/</?php the_permalink(); ?>"></a></h2>
        <?php the_post_thumbnail( 'medium' ); ?>
        <p>导演:</p>
        
    </article>
<?php endwhile; the_posts_navigation(); else : ?>
    <p>لا توجد أفلام متاحة في الوقت الحالي.</p>

الملخصات

إتقان إنشاء أنواع مقالات مخصصة في ووردبريس (WordPress) هو خطوة أساسية للتخلص من شكل المدونات البسيطة وبناء مواقع إلكترونية حديثة ذات وظائف متنوعة وهيكل واضح. register_post_type تبدأ عملية تسجيل الكود في الدالة، ثم يتم إضافة الحقول الخاصة من خلال إضافة مكون ACF أو مربعات البيانات المخصصة، وأخيرًا يتم إنشاء العناصر الخاصة وفقًا لمستويات القوالب. single-{cpt}.php و archive-{cpt}.php ملف القالب (template file)، وكل هذه العمليات مجتمعة تشكل وحدة كاملة. CPT تطوير سير عمل التطوير (Development Workflow).

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

الأسئلة الشائعة الأسئلة المتداولة

ما الفرق بين أنواع المقالات المخصصة (Custom Article Types) وأنظمة التصنيف المخصصة (Custom Taxonomies)؟

تُستخدم أنواع المقالات المخصصة لتعريف كيانات محتوى جديدة، مثل “الأفلام” أو “المنتجات”. أما أنظمة التصنيف المخصصة (مثل العلامات أو التوسعات في الفهارس التصنيفية) فهي تُستخدم لتصنيف وتنظيم المحتوى. يمكن لنوع مقالة مخصص واحد أن يرتبط بعدة أنظمة تصنيف مخصصة. على سبيل المثال، نوع المقالات “الأفلام” يمكن أن CPT يمكن ربط “النوع” (الفعل، الكوميديا) مع “المنطقة” (اللغة الصينية، هوليوود)، وهما نظامان تصنيفيان مخصصان.

يجب عليّ تسجيل الـ CPT (Custom Post Type) إما في ملف `functions.php` الخاص بالقالب (theme) أو في إضافة (plugin) مستقلة.

يعتمد الأمر على مدى تعقيد المشروع ومتطلبات قابلية نقل الكود (القابلية للتكيف مع بيئات أخرى). بالنسبة للمشاريع التي مرتبطة ارتباطًا وثيقًا بموضوع معين ولا يمكن إعادة استخدام أجزاء CPTيمكن وضعها ضمن موضوع (التيمة) الرئيسي. functions.php نعم. لكن أفضل الممارسات هي إنشاء إضافة (plugin) مستقلة لتخزين جميع أكواد تسجيل أنواع المقالات المخصصة والتصنيفات. بهذه الطريقة، حتى عند تغيير الثيمة (theme)، سيتم الحفاظ على أنواع المحتوى وبياناتها، مما يؤدي إلى فصل أفضل بين “الوظائف” (functions) و“المظهر” (appearance) للموقع.

كيف يمكن تعديل هيكل الروابط الثابتة لنوع المقالات المخصصة الحالي؟

يمكنك القيام بالتسجيل. CPT في الوقت المناسب… rewrite يمكن أيضًا تعديل إعدادات المعاملات بعد عملية التسجيل. register_post_type_args تم تعديل الفلتر. بعد إجراء التعديلات، يجب زيارة صفحة “الإعدادات” → “الروابط الثابتة” في واجهة برمجة ووردبريس الخلفية، والنقر مرة واحدة على “حفظ التغييرات” لتحديث قواعد إعادة الكتابة. وإلا، قد لا تتم تطبيق الهيكلية الجديدة للروابط.

لماذا لا أرى أنواع المقالات المخصصة التي قمت بإنشائها في واجهة المستخدم؟

عادةً ما يحدث هذا بسبب إعدادات معاملات التسجيل غير الصحيحة. يرجى التحقق أولاً من دالة التسجيل. $args في المصفوفة 'public' و 'publicly_queryable' هل تم تعيين جميع المعاملات (المتغيرات) بالفعل؟ trueثانيًا، تأكد من… 'show_ui' و 'show_in_nav_menus' أيضًا… trueأخيرًا، قم بفحص ملفات القوالب (templates).single-{cpt}.php أو archive-{cpt}.phpهل تم إنشاؤ الملف بشكل صحيح ويقع في المجلد الرئيسي لموضوع النشاط؟