ساخت نوع محتوای سفارشی در وردپرس

تا اینجا نوشته و صفحه را شناختیم. اما اگر می‌خواهید سایتتان بخش‌هایی مثل نمونه‌کار، تستimonials، رویداد یا محصول داشته باشد، نوع محتوای سفارشی (Custom Post Type) راه درست است.

ثبت نوع محتوای سفارشی

کافی است تابع register_post_type را روی اکشن init صدا بزنید. مهم‌ترین پارامترها labels برای نام‌ها و supports برای امکانات است.

<?php
function academy_register_portfolio() {
  $args = array(
    'labels' => array(
      'name'          => 'نمونه‌کارها',
      'singular_name' => 'نمونه‌کار',
      'add_new_item'  => 'افزودن نمونه‌کار جدید',
    ),
    'public'        => true,
    'has_archive'   => true,
    'menu_icon'     => 'dashicons-portfolio',
    'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
    'show_in_rest'  => true,
    'rewrite'       => array( 'slug' => 'portfolio' ),
  );

  register_post_type( 'portfolio', $args );
}
add_action( 'init', 'academy_register_portfolio' );

توضیح پارامترهای کلیدی

  • public — آیا در سایت و جستجو دیده شود
  • has_archive — صفحه بایگانی برای این نوع محتوا ساخته شود
  • supports — کدام امکانات فعال باشد؛ بدون thumbnail تصویر شاخص کار نمی‌کند
  • show_in_rest — اگر true باشد، ویرایشگر بلوکی وردپرس در دسترس قرار می‌گیرد
  • rewrite — ساختار پیوند دائمی این بخش

افزودن دسته‌بندی اختصاصی

<?php
function academy_register_taxonomy() {
  register_taxonomy( 'portfolio_cat',
    'portfolio',
    array(
      'labels' => array(
        'name' => 'دسته‌های نمونه‌کار',
      ),
      'hierarchical' => true,
      'show_in_rest'  => true,
    )
  );
}
add_action( 'init', 'academy_register_taxonomy' );

نمایش در قالب

<?php
$query = new WP_Query( array(
  'post_type'      => 'portfolio',
  'posts_per_page' => ۹,
) );

if ( $query->have_posts() ) :
  while ( $query->have_posts() ) :
    $query->the_post(); ?>
    <h۳><?php the_title(); ?></h۳>
    <?php the_post_thumbnail( 'medium' ); ?>
  <?php endwhile;
endif;
wp_reset_postdata();

توجه کنید که پس از پایان حلقه حتماً wp_reset_postdata() را صدا بزنید، وگرنه حلقه اصلی وردپرس به‌هم می‌ریزد.

نوع محتوای سفارشی قدرت واقعی وردپرس را نشان می‌دهد: می‌توانید ساختار محتوایی هر وب‌سایتی را بسازید، بدون اینکه حتی یک خط کد اضافه‌تر بنویسید.

مقاله قبلی
مقاله بعدی