WordPress’te Özel Yazı Türü (Custom Post Type) Oluşturma


WordPress tabanlı sitelerimiz sadece yazılar ve sayfalardan ibaret değildir. Temamızı kodlarken isterseniz özel yazı türleri ekleyerek zenginleştirebilirsiniz. Mesela kurumsal bir site tasarımı kodlarken Projelerimiz, Hizmetlerimiz gibi bir çok yazı türü ekleyerek bunlarıda kendi içlerinde özelleştirebilirsiniz.

function sdc_custom_post_type() {

  $labels = array(
    'name'                => 'Projeler',
    'singular_name'       => 'Proje',
    'menu_name'           => 'Projeler'
  );
  $rewrite = array(
    'slug' => 'project'
  );
  $args = array(
    'label'               => 'projects',
    'description'         => 'Projelerimiz',
    'labels'              => $labels,
    'rewrite'             => $rewrite,
    'supports'            => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'custom-fields'),
    'taxonomies'          => array( 'gender' ),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 6,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'capability_type'     => 'page'
  );

  register_post_type( 'projects', $args );

}
add_action( 'init', 'sdc_custom_post_type', 0 );

Yukarıdaki kodu temanızın functions.php dosyasına eklediğiniz zaman artık wordpress admin panelinizde solda Projelerimiz diye bi alan göreceksiniz.

Özel yazı türünüz ile ilgili yazıları listelemek isterseniz aşağıdaki kodu temanızın herhangi bir noktasında kullanabilirsiniz.

<?php $sdc_query = new WP_Query(array('post_type'=>'services', 'post_status'=>'publish', 'posts_per_page'=>-1));
  if ( $sdc_query->have_posts() ) :
    while ( $sdc_query->have_posts() ) : $sdc_query->the_post(); ?>
      <ul>
        <li><a href="<?php get_permalink(); ?>"><?php the_title(); ?></a></li>
      </ul>
    <?php endwhile;
  endif; 
wp_reset_postdata(); ?>

 

Konu İle İlgili Soru, Görüş ve Öneriler


Soru, Görüş ve Önerileriniz için Yazın!