#Wordpress - 13 Oct 2020
Öncelikle merhabalar, Wordpress Custom Page Type Wordpress admin panelinize Yazılar, Ortam, Sayfalar gibi bir seçenek eklememize yardımcı olur. Tamamen kendimize göre ayarlayabileceğimiz gibi çoğu yerlerde işimizede yarayacaktır. Örneğin referanslar kısmını Custom Page Type ile yapabilirsiniz.
Custom Page Type Temaya Ekleme
Temamızın functions.php
dosyasını açıyoruz, <?php
etiketinin hemen altına aşağıda verdiğim kodları ekliyoruz.
function tayfun_custom_init() { $labels = array( 'name' => _x( 'İsim', 'tayfun' ), 'singular_name' => _x( 'İsim', 'tayfun' ), 'add_new' => _x( 'İsim Ekle', 'tayfun' ), 'add_new_item' => _x( 'İsim tayfun Ekle', 'tayfun' ), 'edit_item' => _x( 'Düzenle', 'tayfun' ), 'new_item' => _x( 'Yeni İsim', 'tayfun' ), 'view_item' => _x( 'Görüntüle', 'tayfun' ), 'search_items' => _x( 'Ara', 'tayfun' ), 'not_found' => _x( 'Bulunamadı', 'tayfun' ), 'not_found_in_trash' => _x( 'Boşalt', 'tayfun' ), 'parent_item_colon' => _x( 'Parent tayfun:', 'tayfun' ), 'menu_name' => _x( 'İsim', 'tayfun' ), 'menu_name' => 'sim Detay' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'tayfun' ), 'capability_type' => 'page', 'has_archive' => true, 'hierarchical' => true, 'menu_position' =>4, 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes' ), ); register_post_type( 'tayfun', $args ); } add_action( 'init', 'tayfun_custom_init' ); //adding the meta box when the admin panel initialises add_action("admin_init", "admin_init"); // this adds the save teaser function on save post add_action('save_post', 'save_teaser'); function admin_init(){ add_meta_box('teaser_loop', 'Ayarlar', 'loop_meta', 'tayfun', 'normal', 'default'); } // callback function of add meta box that displays the meta box in the post edit screen function loop_meta($post, $args){ $soru = get_post_meta($post->ID, 'soru', true); ?> <style> .baslik {width:100%;font-weight:bold;font-size:15px} textarea {border: 1px solid #CCCCCC;background-color: #FFFFFF;-webkit-border-radius: 10px;-moz-border-radius: 10px;width:100%;margin-top:5px;} .textbox {border: 1px solid #CCCCCC;background-color: #FFFFFF;-webkit-border-radius: 10px;-moz-border-radius: 10px;width:100%;margin-top:5px;} </style> <div class="button realcuf baslik"><label>Gösterilmesi İstenilen Soru </label></div><div style="clear:both;"></div> <input class="textbox" type="text" name="soru" value="<?php echo $soru; ?>" /><br/> <?php } // saving the teaser function save_teaser(){ global $post; update_post_meta($post->ID, 'soru', $_POST['soru']); }
Listeleme Yapma
Aşağıdaki kodları göstermek istediğiniz yere ekleyerek custom page type ile ayarladığımızı listeleyebiliriz.
<?php $args=array( 'post_type' => 'tayfun', 'posts_per_page' => -1, 'services_rendered' => $client2 ); $loop = new WP_Query($args); ?> <?php while ($loop->have_posts()) : $loop->the_post(); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?>
Özel Single Yapımı
Eğer temanın genel single şablonunu değil farklı şablon kullanmak istiyorsanız single-tayfun.php
diye oluşturup kendi şablonunuzu ayarlayabilirsiniz.
Metabox İle Gösterme
Metabox ile göstermek için
<?php echo get_post_meta( get_the_ID(), 'soru', true ); ?>
göstermek istediğiniz yere eklemeniz yeterlidir.