WordPress 3.0 için 8 yararlı kod

Ay başında WordPress 3.0 beta sürümünün yayınlamasının ardından kararlı sürümün çıkacağı tarih iyice yakınlaşmış oldu. Şimdilik WordPress 3.0 için en yakın tarih 1 Mayıs’ı gösteriliyor. Gerçekten bir devrim niteliğinde olacak bu güncelleme, blog yazılımından daha ziyade içerik yönetim sistemine (cms) daha çok benzetilmiş. Daha önceki WordPress 3.0 sürümü yazımızda bir kısım özelliklerden bahsetmiştik ki muhtemelen kararlı sürümi deneyip daha detaylı inceleme yazısı yazdığımızda nelerin değiştiğini daha net görebileceksiniz. Bu yazımızda WordPress 3.0 kullanmaya başlarken lazım olabilecek 8 yararlı kod’dan bahsedeceğiz.

Özel yazı alanları nasıl oluşturulur?

Custom post type türkçe ifadesiyle özel yazı alanı WordPress için inanılmaz gelişmelerden biri olarak görüyorum. Çünkü geliştiriciler kendi ihtiyaçlarına göre sayfa hazırlayabilecekler. Şimdiye kadar sadece post (yazı) ve page (sayfa) hazırlayabilirken, WordPress 3.0 ile birlikte yeni yazı alanları da oluşturabileceğiz. Örneğin oluşturduğumuz ürünler sayfasına giren müşteri orada sadece satılan ürünleri görebilecek. Sizde blog’unuza normal yazı girişi yapıyormuş gibi düzenli olarak ürün ekleyebileceksiniz. Bu sayede istediğiniz şekilde özel yazı sayfaları hazırlayabilirsiniz.

Custom post type oluşturmak oldukça kolay! Yapmanız gereken temanızda bulunan functions.php dosyasını açmanız ve aşağıda bulunan kodu yapıştırmanız. Örnek yabancı blog’dan alıntı olduğu için ürünler yerine products kelimesi kullanılmış.

$args = array(
        'label' => __('Products'),
        'singular_label' => __('Product'),
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'page',
        'hierarchical' => false,
        'rewrite' => true,
        'query_var' => 'products',
        'supports' => array('title', 'thumbnail')
);
register_post_type( 'product' , $args );

Dosyasınıza yapıştırıp sonra kaydedin. Daha sonra WordPress yönetim paneline girdiğinizde sol menüde Products adlı yeni yazı alanının eklenmiş olduğunu göreceksiniz.

Özel yazı alanları ile birlikte özel kategoriler ve etiketler

Önceki örnekte, nasıl özel yazı alanı oluşturacağımızı görmüş olduk. WordPress’in alalede blog yazılımından çok ne kadar güçlü bir CMS haline geldiğinin aşikar kanıtlarından biri olsa gerek.

Şimdi ise işi biraz daha zorlaştıralım fakat değişik birşeyler olacağından da şüpheniz olmasın. Özel yazı alanı oluştururken onlarla ilişkilendirilmiş özel taksonomiler oluşturacağız. Taksonominin tam olarak türkçe karşılığını bulamadığımız için çevirmeden yazma durumunda kaldık. Çoğu kişinin en azından bilgi ufak da olsa bilgi sahibi olabilmesi için taksonominin yazılarla alakalı bir terim ( örneğin kategori veya etiket ) olduğunu belirtelelim. Daha fazla bilgi edinmek isterseniz WordPress Codex sayfasına bakabilirsiniz.

Bu örnekte biz Albums adlı özel yazı alanı oluşturacağız. Kategori olarak “Genres” ve etiket olarak da “Performer”a sahip olacak. Bu ufak kod parçasını functions.php dosyasına yapıştırmamız yeterli olacaktır. Böylece tam tekmil kullanışlı bir müzik albümü oluşturmuş olduk.

function post_type_albums() {
	register_post_type(
                     'albums',
                     array('label' => __('Albums'),
                             'public' => true,
                             'show_ui' => true,
                             'supports' => array(
                                        'post-thumbnails',
                                        'excerpts',
                                        'trackbacks',
                                        'comments')
                                )
                      );
// Adding the Custom Taxonomy for Genres. Here we can create categories specific for this post type.
	register_taxonomy( 'genres', 'albums', array( 'hierarchical' => true, 'label' => __('Genres') ) );

// Adding the Custom Taxonomy for Performer. Here we can add tags specific for this post type.
        register_taxonomy( 'performer', 'albums',
		array(
                         'hierarchical' => false,
			 'label' => __('Performer'),
			 'query_var' => 'performer',
			 'rewrite' => array('slug' => 'performer' )
		)
	);
}
add_action('init', 'post_type_albums');

Özel yazı alanı sorgusu

Buraya kadar özel yazı alanının nasıl oluşturulacağını öğrenmiş olduk. Bundan sonraki adım ise bu yazı alanını WordPress veritabanından ne şekilde çekip blog’umuzda nasıl göstermek olacak.

Geliştiriciler için iyi bir haber, bu süreçte yeni ve zor herhangi birşey yok. WP_Query nesnesini kullanarak oluşturduğumuz özel yazı alanlarını kolaylıkla veritabanından alabileceğiz. Aşağıdaki örnek gene yabancı siteden alıntı olduğu için albums aldı özel yazı alanı oluşumunu gösteriyor.

<ul>

<?php global $wp_query;
$wp_query = new WP_Query("post_type=albums&post_status=publish");

while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

Çoklu site özelliğinin kullanımının etkinleştirilmesi

WordPress 3.0’ın merakla beklenen en önemli özelliklerinden birisi de hiç kuşkusuz çoklu site yönetimi. Kısaca, tek WordPress kurulumu ile birden fazla WordPress blogunuzu network üzerinden çalıştırıyor olacaksınız.

Bu özellikten yararlanabilmeniz için aşağıdaki verilen kodu wp-config.php dosyanıza yapıştırmanız gerekli. Bu dosya ise WordPress’i kurduğunuz ana klasörün içerisinde yer almaktadır.

define('WP_ALLOW_MULTISITE', true);

Andrea_r işaret ettiğine göre, yukarda bulunan kodu ekledikten sonra, Araçlar / Network sayfanızı ziyaret edip network’ünüzü kurabilirsiniz.

Özel yazar profil sayfaları

Çoğu büyük blog’da birden fazla yazar mevcut. WordPress size yazar sayfaları oluşturmanıza izin veriyordu, WordPress 3.0 ile gelecek olan yeni özellik sayesinde kategorilerde olduğu gibi her yazar için farklı sayfa hazırlayabileceksiniz.

Yapmanız gerekn author-XX.php adında her yazar için farklı sayfa oluşturmanız gerekiyor. XX gördüğünüz yere ise o yazarın ya üyelik ID’sini veyahut da kullandığı giriş ismini ‘admin’ gibi. Örneğin admin üyesi için oluşturacağımız sayfa author-admin.php adında olacak.

Özel arkaplan resmi ekleme

WordPress 3.0 sürümün gelecek özelliklerinden bahsederken bundan bahsetmiştim. (bkz. 4. yenilik) Bu yenilik sayesinde yönetim panelinizden istediğiniz arkaplan resmini yükleyebiliyor ve konumunu belirleyebiliyorsunuz.

Tabiki bunu daha önceden manuel olarak yapabilirdiniz. Ancak artık kodlarla uğraşmadan yapmanız gereken sadece kullanmak istediğiniz resmi seçmek ve yerleşim yerini ayarlamak. Bunu yapabilmek için aşağıdaki kodu temanızda bulunan functions.php sayfanıza eklemeniz yeterli.

add_custom_background();

WordPress editöründe CSS kullanımı

WordPress’in yeni özelliklerinden en çok hoşuma giden kısmı bu oldu diyebilirim. Eskiden yazı editörünün içerisinde sadece kalınlaştırma, italik şekilde yazma gibi birkaç özellik bulunuyordu. Yeni özellik sayesinde artık yazılarımızda istediğimiz fontu ve rengi kullanabileceğiz.

Yeni özellikte WordPress size css dosyası oluşturmanıza izin veriyor (aşağıdaki örnekte editor-style.css adında) daha sonra editörünüzde daha fazla seçenekten faydalanabilmeniz içinde link verecek. Aşağıdaki kodu functions.php dosyasına yapıştırmanız yeterli.

add_filter('mce_css', 'my_editor_style');
function my_editor_style($url) {
  if ( !empty($url) )
    $url .= ',';
  // Change the path here if using sub-directory
  $url .= trailingslashit( get_stylesheet_directory_uri() ) . 'editor-style.css';

  return $url;
}

Temanızı WordPress 3.0 menüleriyle uyumlu hale getirme

WordPress 3.0 ile gelen yeni menü sistemi kullanıcılara diledikleri sayfaları, kategorileri ve daha fazlasını ekleyebilmelerine izin verecek. Tema geliştiricilerine iyi haber, WP 3.0 menünün temanızı desteklemesi çok kolay!

Temanızdaki functions.php dosyasını açın ve kodu yapıştırın;

add_theme_support( 'nav-menus' );

Ekledikten sonra siz yeni temanızdaki wp_nav_menu() fonksiyonunu kullanabilirsiniz.

wp_nav_menu('sort_column=menu_order&container_class=navigation');

Kaynak

One thought on “WordPress 3.0 için 8 yararlı kod”

Leave a Reply

Your email address will not be published. Required fields are marked *