WordPress Eklenti Geliştirme Temelleri Nelerdir?

No Comments

WordPress, açık kaynaklı bir içerik yönetim sistemi (CMS) olarak kullanılan bir yazılımdır. Bu nedenle, WordPress’in veritabanı yönetimi, dosya yapısı, tema ve eklenti sistemleri gibi temel konularını anlamak, eklenti geliştiricilerin eklentilerinin WordPress ile sorunsuz bir şekilde entegre olmasını sağlayacaktır.

Veritabanı tabloları

  • WordPress, içerik ve ayarlar gibi verileri saklamak için MySQL veritabanı kullanır. Bu veritabanında kullanılan tablolar ve bunların içerikleri, WordPress’in çalışmasında önemli bir rol oynar.

WordPress, eklentilerin veri saklamak için kullanabileceği bir veritabanı sistemi olan MySQL’i kullanır. Eklentilerin kendi özel veritabanı tablolarını oluşturabilmeleri için WordPress, veritabanı yönetimini kolaylaştıran bir dizi API sağlar.

Eklenti geliştiricileri, WordPress veritabanına erişerek yeni tablolar oluşturabilirler. Bu tablolar, eklentinin özelliklerinin veya verilerinin saklanması için kullanılabilir. Örneğin, bir e-ticaret eklentisi ürünlerin depolanması için özel bir veritabanı tablosu oluşturabilir.

Veritabanı tabloları, SQL (Structured Query Language) sorguları ile yönetilebilir. Eklenti geliştiricileri, tablolara veri ekleme, düzenleme, sorgulama ve silme işlemlerini yapmak için SQL sorguları yazabilirler. Ancak, bu işlemler için WordPress, daha yüksek seviyeli veritabanı işlevleri sunar. Bu işlevler, veritabanı yönetimini daha kolay hale getirir ve güvenliğe yardımcı olur.

WordPress veritabanı sistemi, eklenti geliştiricilerin verileri doğru ve güvenli bir şekilde saklamalarına olanak tanır. Ancak, eklenti geliştiricilerinin veritabanı tablolarını kullanmadan önce, WordPress’in veritabanı yapısını anlamaları önemlidir. Ayrıca, veritabanı tablolarının oluşturulması, güncellenmesi ve yönetilmesi için en iyi uygulamaların takip edilmesi gereklidir.

WordPress veritabanının yapısı şu şekildedir:

  1. wp_users: WordPress kullanıcı hesaplarını saklar.
  2. wp_usermeta: WordPress kullanıcı hesaplarıyla ilgili ek bilgileri saklar.
  3. wp_posts: WordPress içeriğini saklar. Yazılar, sayfalar, özel post türleri vb.
  4. wp_postmeta: WordPress içeriğiyle ilgili ek bilgileri saklar.
  5. wp_comments: WordPress yorumlarını saklar.
  6. wp_commentmeta: WordPress yorumlarıyla ilgili ek bilgileri saklar.
  7. wp_terms: WordPress kategorileri ve etiketleri gibi terimleri saklar.
  8. wp_term_relationships: WordPress terimlerini içeriğe bağlar.
  9. wp_term_taxonomy: WordPress terimlerinin türünü belirtir (kategori veya etiket).
  10. wp_options: WordPress ayarlarını saklar.

Post Türleri

  • WordPress, varsayılan olarak yazılar ve sayfalar gibi iki farklı post türü sunar. Ancak, eklenti geliştiricileri kendi özel post türlerini de oluşturabilirler.

WordPress, kullanıcıların farklı türde içerikler oluşturmasına izin veren birçok post türüne sahiptir. Post türleri, kullanıcıların sıradan blog gönderilerinin yanı sıra sayfalar, portföyler, etkinlikler, ürünler ve daha birçok içerik türünü yönetmelerine olanak tanır.

Örneğin, bir fotoğrafçı, portföyündeki fotoğrafları WordPress’te yayınlamak istediğinde, “portföy” adlı bir post türü oluşturabilir. Bu post türü, özel alanlar, kategoriler ve etiketler gibi özelliklere sahip olabilir. Bu özellikler, fotoğrafçının portföyündeki fotoğrafları düzenlemesine ve aramasına yardımcı olur.

WordPress, önceden tanımlanmış birkaç post türü sunar, ancak eklenti geliştiricileri kendi özel post türlerini de oluşturabilirler. Eklenti geliştiricileri, özel post türleri oluşturarak, eklentilerinin belirli bir türde içerik yönetmesine olanak tanıyan işlevselliği ekleyebilirler.

Post türleri, WordPress’in içerik yönetimini daha esnek ve özelleştirilebilir hale getirir. Eklenti geliştiricileri, eklentilerinin ihtiyaçlarına en uygun post türlerini kullanarak, kullanıcıların içeriklerini daha kolay yönetmelerine yardımcı olabilirler.

İşte WordPress’te sıkça kullanılan post türlerinin bazı örnekleri:

  1. Post: Blog yazıları için kullanılan post türüdür. Tarih ve yazar bilgileri içerir.
  2. Page: Web sitesinin statik sayfaları için kullanılır. Hakkımızda, iletişim sayfası gibi.
  3. Attachment: Medya dosyaları (resim, video, ses vb.) için kullanılan post türüdür.
  4. Revision: Post veya page gibi diğer post türlerinin düzenleme geçmişlerini tutmak için kullanılan post türüdür.
  5. Navigation menu: WordPress’te bulunan menülerin kaydedilmesi için kullanılır.
  6. Custom post types: Kullanıcıların özel olarak oluşturduğu post türleridir. Örneğin, bir film sitesinde “film” post türü gibi.

Bu sadece birkaç örnek. WordPress, kullanıcıların kendi post türlerini oluşturmasına da olanak tanır, bu nedenle post türleri sayısı sınırsızdır.

WordPress’te kendi post türünüzü oluşturmak için öncelikle birkaç adımı izlemeniz gerekiyor. İşte basit bir örnek:

  1. functions.php dosyasını açın ve aşağıdaki kodu ekleyin:
add_action( 'init', 'custom_post_type' );
function custom_post_type() {
    $args = array(
        'public' => true,
        'label'  => 'Kitaplar'
    );
    register_post_type( 'kitap', $args );
}

Bu kod, “kitap” adlı yeni bir post türü oluşturur ve “Kitaplar” adlı bir etiket kullanır.

  1. Yeni post türünüzü kaydedin ve siteye gidin. Yönetici panelinde, “Kitaplar” adlı yeni bir menü öğesi göreceksiniz.
  2. Yeni bir “Kitap” yazısı oluşturmak için menüden “Yeni Ekle” seçeneğini tıklayın ve “Kitap” seçeneğini seçin.
  3. Yeni post türünüzü düzenleyin ve kaydedin.
  4. Şimdi, siteye gidin ve yeni post türünüzü görüntüleyin. Özel post türünüzün URL’si, “http://example.com/kitap” şeklinde olacaktır.

Şablonlar

  • WordPress, farklı sayfa tipleri için özel şablonlar kullanır. Örneğin, bir blog sayfası için farklı bir şablon kullanılırken, bir hakkımızda sayfası için farklı bir şablon kullanılır.

WordPress’te, bir içerik türü için birçok şablon olabilir. Her şablon, farklı bir görünüm sağlar. Örneğin, bir blog postu için bir tam genişlik şablonu, yan çubuklu bir şablon veya tamamen özelleştirilmiş bir şablon olabilir.

WordPress şablonları, PHP, HTML, CSS ve JavaScript gibi web teknolojileri kullanılarak oluşturulur. Bu şablonlar, WordPress teması içinde bulunabilir veya eklentiler tarafından eklenmiş olabilir. Eklenti geliştiricileri, özel şablonlar ekleyerek, eklentilerinin belirli bir işlevselliğini göstermek için özel bir arayüz oluşturabilirler.

WordPress’in şablon yapısı, içerik yönetimi ve site tasarımını kolaylaştırır. Eklenti geliştiricileri, eklentileri için özel şablonlar oluşturarak, kullanıcıların içeriklerini ve eklentilerinin işlevselliğini daha iyi yönetmelerine yardımcı olabilirler.

Bir tema genellikle en az birkaç şablon dosyası içerir. Örneğin, tema dosyalarının birkaç örneği aşağıda verilmiştir:

  • header.php: Sayfa üstbilgisi (header) için şablon dosyası
  • footer.php: Sayfa altbilgisi (footer) için şablon dosyası
  • index.php: Blog sayfası şablon dosyası
  • single.php: Tek bir blog yazısı sayfası için şablon dosyası
  • page.php: WordPress sayfaları için şablon dosyası
  • archive.php: Belirli bir tarih aralığı, kategori veya etiket ile ilişkili tüm blog yazılarını içeren sayfalar için şablon dosyası
  • search.php: Arama sonuçlarını göstermek için şablon dosyası
  • 404.php: Bulunamayan sayfa için şablon dosyası

Şablon dosyalarının tam listesi, WordPress resmi dokümantasyonunda bulunabilir. Ayrıca, her tema kendi şablon dosyalarını içerir ve tema geliştiricileri, tema işlevselliğini özelleştirmek için bu dosyaları kullanabilir veya bunlara ekleyebilir.

WordPress’in resmi dokümantasyonunda tüm şablon dosyalarının listesi “Template Files” başlığı altında yer almaktadır. Bu sayfaya aşağıdaki URL aracılığıyla erişebilirsiniz:

https://developer.wordpress.org/themes/template-files-section/

Fonksiyonlar

  • WordPress, bazı işlevleri gerçekleştirmek için hazır fonksiyonlar sunar. Eklenti geliştiricileri bu fonksiyonları kullanarak, kendi eklentilerinin işlevlerini gerçekleştirebilirler.

WordPress’in PHP fonksiyonları, sitenin ön yüzünde ve arka yüzünde kullanılabilir. Örneğin, veritabanından veri almak, postları veya sayfaları getirmek, belirli verileri güncellemek veya silmek, ayarları kaydetmek, sayfaları veya özel menüleri oluşturmak için fonksiyonlar kullanılabilir.

WordPress, binlerce hazır fonksiyon içerir ve bu fonksiyonlar, WordPress eklenti geliştiricileri tarafından kullanılabilir. Bu fonksiyonlar, WordPress’in çekirdek işlevlerini genişletmek veya değiştirmek için kullanılabilir.

Eklenti geliştiricileri, kendi özel fonksiyonlarını da oluşturabilirler. Bu özel fonksiyonlar, örneğin, eklentinin belirli bir işlevselliğini yerine getirmek için kullanılabilir. Eklenti geliştiricileri, bu özel fonksiyonları eklentilerine ekleyerek, sitelerdeki belirli bir işlevselliği yerine getirebilirler.

WordPress fonksiyonları, WordPress eklenti geliştirme sürecinde sıklıkla kullanılır ve doğru bir şekilde kullanıldığında, eklentilerin daha hızlı ve güvenli olmasını sağlar. Eklenti geliştiricileri, bu fonksiyonlar hakkında iyi bir anlayışa sahip olduklarında, WordPress’te daha gelişmiş eklentiler oluşturabilirler.

İşte fonksiyonlara birkaç örnek:

  1. “wp_enqueue_script”: Bu işlev, WordPress sitenize JavaScript dosyalarını yükleme yeteneği verir. Bu, özel JavaScript işlevleri yazmak veya bir eklenti veya tema için özel JavaScript dosyaları kullanmak istediğinizde kullanışlıdır.

Örnek kullanımı:

function my_custom_scripts() {
  wp_enqueue_script( 'my-custom-script', get_template_directory_uri() . '/js/my-custom-script.js', array( 'jquery' ), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
  1. “get_header” ve “get_footer”: Bu işlevler, site başlığı ve alt bilgi şablonlarını almak için kullanılır. Bu işlevleri kullanarak, tema dosyalarınızda başlık veya alt bilgi bölümünde özel kodlar ekleyebilirsiniz.

Örnek kullanımı:

get_header(); // Başlık şablonunu getirir
// Tema dosyasının geri kalanı
get_footer(); // Alt bilgi şablonunu getirir
  1. “the_title” ve “the_content”: Bu işlevler, WordPress yayınlarındaki başlık ve içeriği görüntülemek için kullanılır. Özel HTML veya CSS eklemek isterseniz, bu işlevleri kullanarak yayın başlığı veya içeriğini sarmalayabilirsiniz.

Örnek kullanımı:

while ( have_posts() ) : the_post();
  echo '<h2 class="entry-title">';
  the_title();
  echo '</h2>';
  echo '<div class="entry-content">';
  the_content();
  echo '</div>';
endwhile;

WordPress fonksiyonları hakkında detaylı bilgi almak için aşağıdaki kaynaklara başvurabilirsiniz:

Kancalar

  • WordPress, işlevleri gerçekleştirmek için “kancalar” veya “hooks” adı verilen bir sistem kullanır. Eklenti geliştiricileri, kancalar kullanarak, WordPress’in farklı noktalarında kendi kodlarını çalıştırabilirler.

WordPress, eklentilerin WordPress’in işleyişini değiştirmelerine izin veren “kancalar” (hooks) adında bir olay tabanlı sistem sunar. Kancalar, eklentilerin WordPress’in belirli bir noktasına müdahale etmelerine izin vererek, özel işlevsellikler eklemelerine ve WordPress’in çekirdek işlevlerini değiştirmelerine olanak tanır.

Kancalar, işlevsel olarak ikiye ayrılır: “Aksiyonlar” ve “Filtreler”. Aksiyon kancaları, WordPress’in belirli bir noktasındaki bir işlemi çalıştırmak için kullanılır. Örneğin, bir aksiyon kanca noktası, bir post kaydedildiğinde çalışabilir ve belirli bir eklentinin işlevselliğini yerine getirebilir. Filtre kancaları ise WordPress’in belirli bir noktasındaki bir değeri değiştirmek için kullanılır. Örneğin, bir filtre kanca noktası, belirli bir postun içeriğini değiştirmek için kullanılabilir.

Eklenti geliştiricileri, kancaları kullanarak WordPress’in işleyişini değiştirebilirler. Kancalar, eklentilerin belirli bir WordPress işlevselliğine müdahale etmelerine olanak tanır ve eklentilerin WordPress’in işlevselliğini genişletmelerine izin verir. Kancalar, WordPress’in çekirdek işlevlerine müdahale etmeden, belirli bir işlevselliği yerine getirmek için kullanılabilir.

Eklenti geliştiricileri, kancaları kullanarak özelleştirilmiş işlevselliği ekleyebilir ve WordPress’i daha güçlü ve kullanışlı hale getirebilirler. Ancak, kancaların kullanımı dikkatli yapılmalıdır, aksi halde WordPress’in işleyişinde hatalara neden olabilirler. Eklenti geliştiricileri, kancaları doğru bir şekilde kullanmak için WordPress’in resmi belgelerini ve kaynak kodunu incelemelidirler.

Bir örnek olarak, WordPress’teki “the_content” kanca noktası, her bir içeriğin içeriğini görüntülemek için kullanılır. Eklenti geliştiricileri, “the_content” kanca noktasını kullanarak, her bir içeriğin içeriğine özel bir işlevsellik ekleyebilirler. Örneğin, eklenti geliştiricileri, “the_content” kanca noktasını kullanarak, içeriğin sonuna özel bir mesaj ekleyebilirler.

Aşağıdaki örnek kodda, “the_content” kanca noktası kullanılarak, içeriğin sonuna bir özel mesaj ekleniyor:

function my_custom_message( $content ) {
  $custom_message = '<p>Benim özel mesajım.</p>';
  return $content . $custom_message;
}
add_filter( 'the_content', 'my_custom_message' );

Bu kod, “the_content” kanca noktasını kullanarak, “my_custom_message” fonksiyonunu içeriğin sonuna bir özel mesaj eklemek için kullanır. Bu örnekte, eklenti geliştiricileri, “the_content” kanca noktasını kullanarak, içeriğin sonuna özel bir mesaj eklemek için filtreleme işlevselliğini kullandılar.

WordPress’in resmi belgelerinde, “do_action” ve “apply_filters” işlevlerinin kullanıldığı tüm kanca noktalarının bir listesi bulunabilir. Bu kanca noktaları, WordPress’in çeşitli bölümlerinde (örneğin, başlık, içerik, kenar çubuğu, yorumlar vb.) ve çeşitli olaylarda (örneğin, sayfa yükleme, yorum ekleme, kullanıcı girişi vb.) kullanılabilir.

Aşağıdaki kaynaklarda WordPress kanca noktaları hakkında daha fazla bilgiye erişebilirsiniz:

  1. WordPress resmi belgeleri: https://developer.wordpress.org/reference/functions/do_action/ ve https://developer.wordpress.org/reference/functions/apply_filters/
  2. WordPress kod tabanı: WordPress kod tabanındaki “do_action” ve “apply_filters” işlevlerinin kullanıldığı tüm dosyalarda, hangi kanca noktalarının kullanıldığına dair bir fikir edinebilirsiniz.
  3. Üçüncü taraf kaynaklar: Birçok WordPress geliştirme kaynağı, kanca noktaları hakkında kapsamlı bir rehber sağlar. Bu kaynaklar arasında bloglar, e-kitaplar, video eğitimleri ve diğer kaynaklar yer alır.

Filtreler

  • WordPress, verileri manipüle etmek için “filtreler” veya “filters” adı verilen bir sistem kullanır. Eklenti geliştiricileri, filtreleri kullanarak, WordPress’in verilerini değiştirebilirler.

Tablo sıralama işlemi için bir örnek verelim. Varsayalım bir tablonuz var ve bu tabloda “isim”, “soyisim” ve “yaş” adında üç sütun var. Sıralama işlemini, “yaş” sütununa göre yapmak istiyoruz. Bu durumda posts_orderby filtresi kullanarak sıralama işlemini özelleştirebiliriz.

add_filter( 'posts_orderby', 'custom_orderby' );

function custom_orderby( $orderby_statement ) {
    $orderby_statement = "meta_value_num ASC";
    return $orderby_statement;
}

Yukarıdaki örnek kodda, add_filter() fonksiyonu ile posts_orderby filtresine özelleştirme yapacağımızı belirtiyoruz. Ardından, custom_orderby isimli bir fonksiyon tanımlıyoruz. Bu fonksiyon içinde $orderby_statement değişkeni ile sıralama işlemini özelleştiriyoruz. Örneğin yukarıdaki kodda meta_value_num değeri kullanılarak sıralama yapılır.

Bu filtre örneği ile “posts_orderby” filtresi, sıralama işlemini yapılandırmak için kullanılabilir. Bunun yanı sıra, “the_content” gibi birçok filtre de mevcuttur ve her biri belirli bir işlevi yerine getirir.

WordPress’teki tüm filtrelerin tam listesi için, WordPress resmi dokümanlarında “Filter Reference” sayfasını ziyaret edebilirsiniz. Aşağıdaki URL’yi takip edebilirsiniz:

https://developer.wordpress.org/reference/hooks/

Bu sayfada, filtrelerin yanı sıra, kancalar, fonksiyonlar ve diğer WordPress işlevleri de dahil olmak üzere tüm WordPress işlevleri hakkında bilgi bulabilirsiniz.

Kerem Özgüven, 2000 yılında php programlama geliştirmeye başladı. O günden bu yana bir çok yazılım projesine katkıda bulundu ve fullstack geliştirici olarak kariyerini sürdürüyor. Kullanıcı arayüzleri, web servislerinin tasarımı, veri yapıları, sunucu yönetimi ve web uygulamaları gibi birçok alanda uzmanlaşmıştır. Tasarladığı çözümler kullanıcı dostu tasarımlardan, güvenli ve kolay kullanılan arayüzlere kadar uzanmaktadır. Projelerde öncelikle en iyi sonuçların elde edilmesini kolaylaştıran modern yöntemler kullanmaktadır.Her zaman projelerinin başarısı için gerekli olan tüm araştırmaları yapmaya yönelik bir yaklaşım sergilemektedir.

Daha Fazla Makale

Hepsi

Leave a Comment