WordPress Geliştirme

WordPress Breadcrumbs Fonksiyonu Nasıl Kullanılır?

Biliyorsunuz ki WordPress’te yol haritası, yani breadcrumbs fonksiyonu yok. Bir tema geliştirirken breadcrumbs kullanacaksanız bu vereceğim fonksiyonu functions.php dosyasına ekleyerek kullanabilirsiniz.

Öncelikle bilmeyenler için breadcrumbs nedir onu açıklayalım.

Breadcrumbs Nedir?

Breadcrumbs dediğimiz aslında bizim bir sitede hangi konumda olduğumu gösteren yol haritalarına denir, tıpkı ev veya iş adresimizi belirttiğimiz gibi.

Breadcrumbs şuna benzer şekilde görünür:

Şimdi beraber breadcrumbs fonksiyonu’nu yazalım.

WordPress Breadcrumbs Fonksiyonu

Aşağıdaki fonksiyonu tema dizininizdeki functions.php dosyasında php kodlarının arasına yapıştırın.

function the_breadcrumb() {

    $sep = ' » ';

    if (!is_front_page()) {

        echo '<div class="breadcrumbs">';
        echo '<a href="';
        echo get_option('home');
        echo '">';
        bloginfo('name');
        echo '</a>' . $sep;

        if (is_category() || is_single() ){
            the_category('title_li=');
        } elseif (is_archive() || is_single()){
            if ( is_day() ) {
                printf( __( '%s', 'text_domain' ), get_the_date() );
            } elseif ( is_month() ) {
                printf( __( '%s', 'text_domain' ), get_the_date( _x( 'F Y', 'monthly archives date format', 'text_domain' ) ) );
            } elseif ( is_year() ) {
                printf( __( '%s', 'text_domain' ), get_the_date( _x( 'Y', 'yearly archives date format', 'text_domain' ) ) );
            } else {
                _e( 'Blog Archives', 'text_domain' );
            }
        }

        if (is_single()) {
            echo $sep;
            the_title();
        }

        if (is_page()) {
            echo the_title();
        }

        if (is_home()){
            global $post;
            $page_for_posts_id = get_option('page_for_posts');
            if ( $page_for_posts_id ) { 
                $post = get_page($page_for_posts_id);
                setup_postdata($post);
                the_title();
                rewind_posts();
            }
        }

        echo '</div>';
    }
}

Şimdi bu kodu kullanacağınız yeri belirlediyseniz sıra bu fonksiyonu çağırmaya geldi. Unutmayın bu dosyayı header.php dosyasında kullanmalısınız. Çünkü breadcrumbs her sayfada bulunması gerek bir işlevdir.

Breadcrumbs eklemek istediğiniz yere yapıştıracağınız kod:

<?php the_breadcrumb(); ?>

Her şey tamam. Bilmeniz gerekenler bu kadardı. Ancak sadece kullanmak değil nasıl çalıştığını öğrenmek isteyenler için de bunu size açıklayacağım, mantığı nedir beraber adım adım öğreneceğiz.

Breadcrumbs Fonksiyonu Nasıl Çalışır?

Fonksiyonun içinde en başta eklediğimiz koda bakalım şimdi. Bu kod bağlantılar arasındaki ayırıcıdır. Buraya istediğinizi yazabilirsiniz.

Genelde şunlar kullanılır:        »          –  

Ayırıcı kodu:

$sep = ' » ';

Sıradaki kodumuz geçerli sayfanın ana sayfa olup olmadığını kontrol eder ve ona göre breadcrumbs gösterimini sağlar.

Ana sayfa kontrol kodu:

if (!is_front_page()) {

Şimdi kontrolümüzü de yaptığımıza göre breadcrumbs’ı başlatabiliriz.

Sadece ana sayfamıza bir bağlantı ile breadcrumbs başlatma kodu:

 echo 'div class="breadcrumbs"';
echo 'a href="';
echo get_option('home');
echo '"';
bloginfo('name');
echo '/a' . $sep;

Sıradaki kodumuz ise geçerli sayfanın bir kategori, bir arşiv veya tek bir sayfa olup olmadığını kontrol eder. Eğer öyleyse kategori veya arşiv adını gösterir.

Kod:

if (is_category() || is_single() ){
            the_category('title_li=');
        } elseif (is_archive() || is_single()){
            if ( is_day() ) {
                printf( __( '%s', 'text_domain' ), get_the_date() );
            } elseif ( is_month() ) {
                printf( __( '%s', 'text_domain' ), get_the_date( _x( 'F Y', 'monthly archives date format', 'text_domain' ) ) );
            } elseif ( is_year() ) {
                printf( __( '%s', 'text_domain' ), get_the_date( _x( 'Y', 'yearly archives date format', 'text_domain' ) ) );
            } else {
                _e( 'Blog Archives', 'text_domain' );
            }
        }

Şimdiki kod geçerli sayfa bir yazıysa ve bir önceki kodumuzda yazı kategorisi veya arşivi yakalandıysa önce ayırıcıyı sonra da bulunduğumuz sayfanın başlığını gösterir.

Kod:

if (is_single()) {
            echo $sep;
            the_title();
        }

Sırada bunun neredeyse aynı işlevi yapan bir kodumuz var. Tek farkı yazı yerine sayfalar için olması.

Kod:

if (is_page()) {
            echo the_title();
        }

Bu son kodumuz. Gönderi listesi sayfası olarak atanmış statik bir sayfanız varsa eklenir. Statik sayfanın başlığını bulur ve gösterir. Aynı zamanda breadcrumbs fonksiyonumuzu kapatır.

Kod:

if (is_home()){
            global $post;
            $page_for_posts_id = get_option('page_for_posts');
            if ( $page_for_posts_id ) { 
                $post = get_page($page_for_posts_id);
                setup_postdata($post);
                the_title();
                rewind_posts();
            }
        }

        echo '</div>

';
    }
}

Ek Bilgi

Aşağıda yazan kodları fonksiyonumuzun için bularak kendi HTML tasarımınza uygun bir şekilde değiştirebilirsiniz. Örneğin bazıları breadcrumbs’ı div etiketleri arasında kullanırken bazıları ul ve ol etiketleri arasında kullanabilir.

echo '
<div class="breadcrumbs">';
echo '<a href="'; echo get_option('home'); echo '">';
echo '</a>' . $sep;
echo '</div>

';
[Toplam:3    Ortalama:5/5]
Etiketler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Pin It on Pinterest

Kapalı
Kapalı