Temamıza bileşen (widget) desteği ekleme

Temamıza bileşen alanı tanımlama

<?php
/* functions.php */
 register_sidebar( 
    array(
        'name'          => __( 'Sağ Taraf', 'theme_slug' ),
        'id'            => 'sidebar-right',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3 class="widget-title">',
        'after_title'   => '</h3>',
    )
);
?>

Kodumuzda yer alan değişkenleri kısaca açıklayayım;
‘name’ :
Bileşen alanı için isim.
‘id’ : Bileşen ID’si
‘before_widget’ : Bileşen başlangıcı (kodumuzda yer alan ” %1$s “ kod parçası widget ID’sini yazdırmak için kullanıyoruz. ” %2$s “ kod parçasını ise widget class’larını yazdırmak için  )
‘after_widget’ :  Bileşen bitişi
‘before_title’ : Bileşen başlığı başlangıcı
‘after_title’ : Bileşen başlığı bitişi

Tanımlanan bileşen alanını çağırma

<?php
if(is_active_sidebar( 'sidebar-right' )){ /* Eğer bileşen alanımız tanımlanmış ise */
  dynamic_sidebar( 'sidebar-right' ); /* Bileşen alanını yazdır */
}
?>

WordPress görselleri için farklı boyutlar tanımlama

add_image_size( ‘boyut_adi’ , ‘genişlik (px)’ , ‘yükseklik (px)’ , true / false / array );

<?php
/* functions.php */
add_image_size('home-thumbnail-crop', 150, 180, true );
/* Yukarıdaki kodumuz, 150px genişlik ve 180px yüksekliğe sahip, ana görsele kesme işlemi (gerekir ise) uygulayarak yeni bir görsel oluşturur. */

add_image_size('home-thumbnail-nocrop', 150, 180, false);
/* İlk kodumuz ile aynı boyutlara sahip bir görsel oluşturur lakin ana görsele kesme işlemi zorunlu olmadıkça yapmaz. */

add_image_size( 'home-thumbnail-custom-crop', 150, 180, array( 'left', 'top' ));
/* İlk kodumuz ile aynı boyutlara sahip, ana görsele kesme işlemi (gerekir ise) uygulayarak yeni bir görsel oluşturur. 
Yapılan kesme işlemi, görselin sol ve üst tarafından başlar. */
?>

Farklı boyuta sahip görseli çağırma

<?php 
 $thumbnail_url = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()),'home-thumbnail-crop'); 
/* " home-thumbnail-crop " olarak tanımlanan görseli çağırdık */ 
?>
<img src="<?php echo $thumbnail_url[0]; ?>" />

Temamıza Menü Desteği Ekleme ve Menüyü Yazdırma

<?php
/* functions.php */

// Menü Konumları Tanımlama
register_nav_menus(
 array(
  'header-menu' => __( 'Üst Menü', 'theme_slug' ),
  'footer-menu' => __( 'Alt Menü', 'theme_slug' ),
 )
);
?>

Yukarıdaki kod ile temamıza “Üst Menü” ve “Alt Menü” olmak üzere iki adet menü konumu tanımladık. Peki bunları nasıl kullanacağız.
Öncelikle panelimize girip Görünüm -> Menüler sayfasından menü oluşturup, ilk başta functions.php dosyasında tanımladığımız menü konumlarından en az birine bu menüyü atamamız gerekli.

Menü oluşturma ve menüyü, menü konumlarından birine tanımlama

Eğer yukarıdaki görselde işaretli olan tanımlama işlemini yapmaz iseniz panelden oluşturduğunuz menü, tüm menü konumlarında çıkacaktır.
Şimdi panelden oluşturduğumuz menüyü bir menü konumuna tanımladığımıza göre web sitemizde gösterme işlemini yapabiliriz.

<?php
// Menüyü Çağırma
wp_nav_menu(
 array(
  'theme_location' => 'header-menu', // Menü ID'miz
  'container' => false, // Opsiyonel. Değer true olur ise menümüz bir "div" HTML tag'ı içinde gelecektir.
 )
);
?>

wp_nav_menu() fonksiyonu hakkında detaylı bilgi almak için şu linke göz atabilirsiniz.


Admin panelinin <head> kısmına kod ekleme

<?php
/* functions.php */
function admin_head() {
 echo '<style>body{background-color: #fff;}</style>';
}
add_action('admin_head', 'admin_head');
?>

Sonraki yazı ve önceki yazı linklerini gösterme

<?php 
 previous_post_link('Önceki Yazı'); // Önceki Yazı Linki
 next_post_link('Sonraki Yazı'); // Sonraki Yazı Linki
?>

Ajax isteği oluşturma (Custom Ajax)

<?php
/* functions.php */
function ornek_ajax_istegi() {
    /* Yapılacak işlemler */
    die();
}
add_action( 'wp_ajax_nopriv_ornek_ajax_istegi', 'ornek_ajax_istegi' );
add_action( 'wp_ajax_ornek_ajax_istegi', 'ornek_ajax_istegi' );
?>

Oluşturduğumuz ajax işlemini kullanma

$.ajax({
 url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
 type: 'post',
 data: {
  action: ornek_ajax_istegi,
 }
});