13 Eylül 2008

WordPress Action Hooks

WordPress Yorum Ekle

Aslında başlığı Türkçe yazmak isterdim ancak çeviriyi tam yaptığımızda olay kancaları diye bir şey çıkıyor bu da bana biraz saçma geldiğinden başlığı bu şekilde kullanmak zorunda kaldım ancak yazımda hook kelimesinin karşılığı olarak 'kanca' kelimesini kullanacağım.
Kancalar ne iş yapar diye düşünüyorsunuzdur eminim. Kancalar wordpressin cms dünyasına kazandırdığı ve normalde işletim sistemlerinde de kullanılan bir yöntem. Kancalar bize WP işlemler yaparken, örneğin bir yazıyı yayınla dediğimizde, kaydettiğimizde, bir yorum gönderildiğinde, bu işlemlere müdahale etme şansı verirler. Tabi ki bu yönüyle baktığımızda kancaların daha çok eklenti yazarları tarafından kullanılacağını görebiliriz.
Sitemde, eklenti yazma ile ilgili yazılar bulunuyor. Ayrıca eklenti yazarları için de bundan sonra bazı önemli kaynakları çevireceğim. Bu kapsamda wordpress.org sitesindeki Plugin API/Action Reference yazısının çevirisini yazımın devamında bulabilirsiniz. Yazıda Action kancalarının listesi ve kısa açıklamaları bulunmakta ve eklenti yazarlarının, eklenti yazmayı düşünenlerin aklına cin fikirler getireceğinden eminim.

Eklenti API / Action Referansı

Bu yazıda WP 2.1 ve üzeri kullanan eklenti geliştiricileri için, WP içerisinde kullanılan action kancalarının bir listesi bulunmakta.
Eğer İngilizceniz varsa aşağıdaki kaynakları da inceleyebilirsiniz.

  • Action ve Filtre kancaları için daha fazla bilgi için buraya
  • Genel olarak eklenti yazma hakkında bilgi için buraya ya da buraya (Türkçe)
  • Filtre kancaları için buraya ya da yakın zamanda buraya
  • Önceki WordPress versiyonlarındaki kancalar için ise buraya bakın.

Yazı, Sayfa, Ekler ve Kategori Action'ları (Olayları)

Yazı (Post), Sayfa (Page), Ekler (Attachment - Yazılara eklemek için WP üzerinden yüklediğimiz resim ya da dosyalar), Kategori (Category).
Kancalar yönlendirildikleri fonksiyonlara aynı zamanda paremetreler de aktarabilmektedirler (Bkz. add_action fonksiyonu). Yazı içerisinde bunlar 'Fonksiyon parametreleri' olarak verilecektir.
Olayların hangi dosyalarda çalıştırıldığını, dosyalar içerisinde do_action('olayadı' ifadesini aratarak bulabilirsiniz. Bunun için Notepad++ programı içerisinde Ara/Dosyaların içerisinde bul seçeneğini kullanabilirsiniz.
add_attachment
Bir dosya veritabanına ilk kez eklendiğinde çalışır. Fonksiyon parametreleri: eklenen dosya ID.
add_category
create_category kancasıyla aynı.
create_category
Yeni bir kategori eklendiğinde çalıştırılır. Fonksiyon parametreleri: kategori ID.
delete_attachment
Ekli bir dosya veritabanından silindikten hemen sonra çalışır. Fonksiyon parametreleri: ekli dosya ID.
delete_category
Bir kategori veritabanından silindikten ve silinen kategoriyle ilgili yazı/baglantı düzenlemeleri yapıldıktan sonra çalışır. Fonksiyon parametreleri: kategori ID.
delete_post
Yazı/sayfa silinmek üzereyken (silinmeden hemen önce) çalışır (bkz. 'wp-includes\post.php'). Fonksiyon parametreleri: yazı/sayfa ID.
edit_attachment
Ekli bir dosya veritabanında düzenlendiğinde/güncellendiğinde çalışır. Fonksiyon parametreleri: ekli dosya ID.
edit_category
Bir kategori düzenlendiğinde/güncellendiğinde çalışır, buna kategori tablosundaki count alanını etkileyen bir yazı, 'blogrol' bağlantısı ya da alt kategoriler eklendiğinde ya da silindiğindeki durumlarda dahildir. Fonksiyon parametreleri: kategori ID.
edit_post
Bir yazı/sayfa düzenlendiğinde/güncellendiğinde çalışır, buna yazı/sayfa tablosundaki comment_count alanını etkileyen yorum ekleme ve güncelleme işlemleri de dahildir. Fonksiyon parametreleri: yazı/sayfa ID.
private_to_published
Bir yazının durumu özel'den normal'e dönüştürüldüğünde çılışır. Fonksiyon parametreleri: yazı ID.
publish_page
Bir sayfa yayınlandığında ya da eğer yazı düzenlenmiş ve durumu yayınlanmış olarak ayarlandığında çalışır. Fonksiyon parametreleri: sayfa ID. (UYARI: Bu kanca WP 2.3 ve üzerinde çalışmayacak gibi görülüyor. 'transition_post_status' kancası bunun yerini alacak. GÜNCELLEME: publish_page kancası WP 2.6'den itibaren çalışacak gibi görülüyor, burada ne yazdığını doğrusu ben tam anlamadım ancak yaptığım aramada (WP 2.6.1) bu kancaya rastlamadım, bunun yerine transition_post_status kancasını kullanmak gerekiyor.)
publish_phone
E-posta ile bir yazı eklendikten hemen sonra çalışır. Fonksiyon parametreleri: yazı ID.
publish_post
Bir yazı yayınlandığında ya da yazı düzenlenip, durumu yayınlanmış olarak ayarlandığında çalışır. Fonksiyon parametreleri: yazı ID. (UYARI: publish_page kancası için yapılan uyarı bu kanca için de geçerlidir.)
save_post
Bir yazı/sayfa e-posta, xmlrpc, yazı/sayfa düzenleme formu ile yaratıldığında ya da güncellendiğinde çalışır. Fonksiyon parametreleri: yazı ID.
wp_insert_post
save_post kancası ile aynı.
xmlrpc_publish_post
XMLRPC isteği ile bir yazı yayınlandığında ya da bir yazının durumu XMLRPC ile yayınlanmış olarak değiştirildiğinde çalışır. Fonksiyon parametreleri: yazı_ID.

Yorum, Ping ve Geri izleme Olayları

comment_closed
Bir yazı yorumlara kapatıldığında çalışır. FP (Fonksiyon parametreleri): yazı ID.
comment_id_not_found
Bir yazıda yorumlar ya da yorum formu gösterilmeye çalışıldığında yorum bulunamadığında çalışır. FP: yazı ID.
comment_flood_trigger
Flood yapılan bir yorum tespit edildiğinde, yorumun kabul edilmesini durdurmak için çağırılan wp_die fonksiyonundan hemen önce çalıştırılır. FP: yorumun önceki zamanı, yorumun şimdiki zamanı.
comment_on_draft
Taslak durumundaki (yayınlanmamış) bir yazı, yorum ya da yorum formunu göstermeye çalıştığında çalıştırılır. FP: yazı ID.
comment_post
Bir yorum veritabanına kaydedildikten hemen sonra çalıştırılır. FP: yorum ID, onay durumu ("spam", ya da onaylanmadı/onaylandı (disapproved/approved) durumu için 0/1).
edit_comment
Bir yorum veritabanında güncellendikten ya da düzenlendikten sonra çalıştırılır. FP: yorum ID.
delete_comment
Bir yorum silindikten hemen sonra çalıştırılır. FP: yorum ID.
pingback_post
Bir yazıya ping eklendiğinde çalıştırılır. FP: yorum ID.
trackback_post
Bir yazıya geriizleme eklendiğinde çalıştırılır. FP: yorum ID.
wp_blacklist_check
Bir yorumun karalisteye girip girmediğini kontrol etmek için çalıştırılır. FP: yazar adı, yazar e-posta, yazar URL, yorum metni, yazar IP adresi, yazarın tarayıcısı. Yazacağınız fonksiyonla, yorumu reddetmek için wp_die fonksiyonunu çağırabilir ya da belki WP'deki karalisteden bir kelimeyi içeren bir yorum girdisini düzenleyebilirsiniz.
wp_set_comment_status
Bir yorumun durumu değiştiğinde çalıştırılır. FP: yorum ID, yeni durum metni ("delete", "approve", "spam", "hold").

Bağlantı Olayları

add_link
Veritabanına bir bağlantı ilk kez eklendiğinde çalıştırılır. Fonksiyon parametreleri (FP): bağlantı ID.
delete_link
Bir bağlantı silindiğinde çalıştırılır. FP: bağlantı ID.
edit_link
Bir bağlantı düzenlendiğinde çalıştırılır. FP: bağlantı ID.

Besleme Olayları

atom_entry
Bir atom beslemesinde her bir girdi için, girdi (entry) bilgisi yazdırıldıktan hemen sonra (fakat girdi etiketi (tag) kapatılmadan önce) çalıştırılır.
atom_head
Bir atom beslemesinde ilk girdi yazdırılmadan hemen önce, günlük bilgileri yazdırıldıktan hemen sonra çalıştırılır.
atom_ns
Bir atom beslemesi için temel XML elementi içerisinde çalışır (isim boşlukları (namespaces) eklemek için).
commentrss2_item
Bir yorum beslemesinde bir yorum bilgisi yazdıldıktan sonra (fakat item (eleman) etiketi (tag) kapatılmadan önce) çalıştırılır. FP: yorum ID, yazı ID.
Diğer parametreleri çevirmiyoru. Çünkü birbirine çok benziyorlar ve çevrilince saçma oluyorlar. Bu nedenle özür diliyorum

Tema Olayları

comment_form
Standart temalarda bir yorum formu eklemek için kullanılır. Bu olay yorum formu oluşturulduktan sonra çalıştırılır, örneğin yorumların altına bir form elemanı eklemek istiyorsanız bu olayı kullanabilirsiniz. FP: yazı ID.
do_robots
Bir tema dosya seçicisinin bir robot.txt isteği olduğuna karar verdiğinde çalıştırılır. Biliyorum çok saçma oldu
do_robotstxt
do_robots fonksiyonu içerisinde, fonksiyon robot.txt dosyası için Disallow (izin verilmeyenler) listesini yazdırmadan önce çalıştırılır.
get_footer
Tema get_footer fonksiyonunu çağırdığında çalıştırılır, footer.php tema dosyası yüklenmeden hemen önce.
get_header
Tema get_header fonksiyonunu çağırdığında çalıştırılır, header.php tema dosyası yüklenmeden hemen önce.
switch_theme
Günlüğün teması değiştirildiğinde çalıştırılır. FP: yeni temanın ismi.
template_redirect
İstenilen sayfayı görüntülemede kullanılacak tema dosyasının tespitinden önce çalıştırılır, böylece bir eklenti tema dosya seçimini değiştirebilir.
wp_footer
Tema wp_footer fonksiyonunu çağırdığında çalıştırılır, genellikle günlük sayfasının hemen altında bulunur (</body> etiketinden hemen önce).
wp_meta
sidebar.php tema dosyası wp_meta fonksiyonunu çağırdığında çalıştırılır, eklentilerin yan menüye bir içerik eklemesinde kullanılabilir.
wp_print_scripts
WordPress'in kayıtlı JavaScript betiklerini sayfa başına (header'ına) yazılmadan önce çalıştırılır.

Yönetim Olayları

activate_(eklenti dosya adı)
Bir eklenti ilk defa etkinleştirildiğinde çalıştırılır. Örnek için 'Eklentilerle tablo oluşturma (Creating tables with plugins)' konusuna bakın.
activity_box_end
Yönetim panelinde, Başlangıç ekranında etkinlik kutusunun sonunda çalıştırılır. Başlangıç ekranında, şu kadar yazı, şu kadar yorum var, temayı değiştirebilirsiniz yazan yerin sonunda.
add_category_form_pre
Kategori ekleme formunun yönetim menülerinde ekrana konulmasından hemen önce çalıştırılır.
admin_head
Yönetim panelinin <head> bölümü içerisinde çalıştırılır. Eklentilerinizde .css ya da .js dosyalarına bağlantı eklemek için kullanabilirsiniz.
admin_head-(sayfa kancası) ya da admin_head-(eklenti sayfası)
Bir eklenti sayfasının yönetim panelinin HTML kodlarındaki <head> bölümünde çalıştırılır. Kendi eklenti sayfasınız için <head> ile </head> arasına kodlar yazmak için kullanabilirsiniz.
admin_footer
<body> etiketi içerisinde yönetim panelinin sonunda çalıştırılır.
admin_print_scripts
HTML başlığı (header) içinde çalıştırılır böylece bir eklenti bütün yönetim sayfalarına JS betikleri ekleyebilir.
admin_print_scripts-(sayfa kancası) veya admin_print_scripts-(eklenti sayfası)
Bir eklenti sayfasında HTML başlığında JS betiklerini yazdırmak için çalıştırılır. Sayfa kancası yönetim menüsüne yeni bir eklenti menüsü ekleyen herhangi bir fonksiyon (add_management_page(), add_options_page() vs.) kullanıldığında geri dönen değerdir. Örnek kullanım:

  1. function myplugin_menu() {
  2.   if ( function_exists('add_management_page') ) {
  3.     $page = add_management_page( 'myplugin', 'myplugin', 9, __FILE__, 'myplugin_admin_page' );
  4.     add_action( "admin_print_scripts-$page", 'myplugin_admin_head' );
  5.   }
  6. }

check_passwords
Yeni bir kullanıcı kaydedilirken girilen iki şifre alanının kontrolü için kullanılır. FP: kullanıcı ismi (dizi olarak), birinci şifre, ikinci şifre.
dbx_page_advanced
Sayfa düzenleme ekranında Gelişmiş seçenekler bölümünün altında çalıştırılır. Bu pencereye yeni alanlar eklemek için kullanılabilir.
dbx_page_sidebar
Sayfa düzenleme ekranının yan menüsünün en altında çalıştırılır. Bu ekranın yan menüsüne bir şeyler eklemek için kullanılabilir.
dbx_post_advanced
Yazı düzenleme ekranında Gelişmiş seçenekler bölümünün altında çalıştırılır. Bu pencereye yeni alanlar eklemek kullanılabilir.
dbx_post_sidebar
Yazı düzenleme ekarınının yan menüsünün altında çalıştırılır. Bu menüye bir şeyler eklemek için kullanılabilir.
deactivate_(eklenti dosya adı)
Bir eklenti etkisizleştirildiğinde çalıştırılır.
delete_user
Bir kullanıcı silindiğinde çalıştırılır. FP: kullanıcı ID.
edit_category_form
Kategori ekleme/düzenleme formu ekrana basıldıktan sonra (HTML form etiketi sonlandırılmadan önce) çalıştırılır. Bu formlara yeni girdi alanları eklemede kullanılabilir.
edit_category_form_pre
Kategori düzenleme formu ekrana basılmadan önce çalıştırılır.
edit_form_advanced
Yazı düzenleme formunun gelişmiş bölümünden hemen önce çalıştırılır.
edit_page_form
Sayfa düzenleme formunun gelişmiş bölümünden hemen önce çalıştırılır.
edit_user_profile
Kullanıcı profil düzenleme ekranının sonunda çalıştırılır.
load-(sayfa)
Yönetim menü sayfası yüklendiğinde çalıştırılır.
login_form
Kullanıcı giriş formunun sonundan hemen önce çalıştırılır. Forma yeni alanlar eklemek için kullanılabilir.
login_head
Giriş sayfasının başlık (head) bölümünün sonundan hemen önce çalıştırılır. Giriş sayfasında kontrol amaçlı kullanılabilir.
lost_password
"e-postayla şifrenizi sıfırlayın" formu giriş ekranına basılmadan önce çalıştırılır.
lostpassword_form
E-posta ile şifre sıfırlama formunun sonunda kullanılır. Forma yeni alan eklemede kullanılabilir.
lostpassword_post
Kullanıcı şifre sıfırlamak için e-posta mesajı istediğinde çalıştırılır. $_POST değerleri işlenmeden önce bunları düzenlemek için kullanılabilir.
manage_link_custom_column
Bağlantı yönetim ekranı için bilinmeyen bir sütun olduğunda çalışır. FP: sütun ismi, bağlantı ID. Ayrıca manage_link_columns filtresini inceleyin.
manage_posts_custom_column
Yazı yönetim ekranında bilinmeyen bir sütun olduğunda çalışır. FP: column name, post ID. Ayrıca manage_posts_columns filtresini inceleyin. Bu ekrana yeni sütun eklemede kullanılır. Örnek için burayı inceleyin.
manage_pages_custom_column
Yukarıdakinin sayfa için olanı.
password_reset
Kullanıcının şifresinin yeni rastgele bir şifre ile değiştirilmeden önce çalıştırılır.
personal_options_update
Bir kullanıcı yönetim ekranından kişisel seçeneklerini güncellediğinde çalıştırılır.
plugins_loaded
Bütün eklentiler yüklendikten sonra çalıştırılır.
profile_personal_options
Kullanıcı profil yönetim ekranının Kişisel Seçenekler bölümünün sonunda çalıştırılır.
profile_update
Bir kullanıcı profilini güncellediğinde çalıştırılır. FP: kullanıcı ID.
register_form
Yeni kullanıcı kayıt formunun sonundan hemen önce çalıştırılır.
register_post
Yeni kullanıcı kayıt isteği işlenmeden önce çalıştırılır.
restrict_manage_posts
Yönetim panelinde düzenlenecek yazı listesi ekrana basılmadan önce çalıştırılır.
retrieve_password
Bir kullanıcı şifresi sıfırlandığında çalıştırılır, onlara bir hatırlatma e-postası göndermek için kullanılabilir. FP: kullanıcı adı (login name).
set_current_user
wp_set_current_user fonksiyonu ile kullanıcı değiştirildiğinde çalıştırılır.
show_user_profile
Kullanıcı profil düzenleme ekranının sonunda çalıştırılır.
simple_edit_form
Basit yazı düzenleme formunun sonunda çalıştırılır.
update_option_(seçenek_ismi - option_name)
Bir WordPress seçeneği update_option fonksiyonu ile güncellendikten sonra çalıştırılır. FP: seçeneğin eski değeri, seçeneğin yeni değeri. "foo" isimli seçenek güncellendiğinde "update_option_foo" gibi bir olay oluşur ve seçenek değişikliklerini etkilemek için bu olayı kullanmalısınız.
upload_files_(sekme - tab)
Yönetim ekranında, dosya yükleme penceresi basıldığında çalıştırılır. "sekme - tab" aktif olan sekmenin adıdır. Özel sekmeler oluşturmak için wp_upload_tabs filtresini kullanın.
user_register
Bir kullanıcı profili ilk kez yaratıldığında çalışır. FP: kullanıcı ID.
wp_ajax_(olay - action)
Yönetim panelinde belirsiz bir AJAX olayı yapmak için çalıştırılır.
wp_authenticate
Bir kullanıcı giriş yaptığında bilgilerini kontrol etmede çalıştırılır. FP: kullanıcı adı ve şifresi dizi olarak. Kullanıcının kullanıcı adı ve şifresi yanında başka bir girdiyi de kontrol etmede kullanılabilir.
wp_login
Bir kullanıcı giriş yaptığında çalıştırılır.
wp_logout
Bir kullanıcı çıkış yaptığında çalıştırılır.

Gelişmiş Olaylar

Bu bölümde WP loop, yazıları görüntüleme, eklentileri etkinleştirme ve diğer üst düzey WP kodlarıyla ilgilli olaylar bulunmaktadır.
admin_menu
Temel yönetim paneli menüsü oluşturulduktan sonra çalıştırılır.
admin_notices
Yönetim menüsü ekrana basıldıktan sonra çalıştırılır.
blog_privacy_selector
Günlüğe özel seçenekler ekrana basıldıktan sonra çalıştırılır.
check_admin_referer
check_admin_referrer fonksiyonun içerisinde, nonce (WP tarafından oluşturulan, formlarda ekstra güvenlik için kullanılan benzersiz bir anahtar alan) alanlarının kontrolünden sonra çalıştırılır.
check_ajax_referer
check_ajax_referer fonksiyonu içerisinde, kullanıcı çerezlerle doğrulandıktan sonra çalıştırılır.
generate_rewrite_rules
.htaaccess dosyası için rewrite (yeniden yazma) kuralları üretildikten sonra çalıştırılır. FP: WP_Rewrite sınıfının değerleri bir liste olarak. rewrite kurallarını düzenlemek için bu fonksiyonu kullanmak yerine rewrite_rules_array filtresini kullanmak işleri daha kolaylaştıracaktır.
init
WordPress, yüklemeyi bitirdikten sonra fakat herhangi bir header (başlık bilgisi) bilgisi yollamadan önce çalışır. $_GET veya $_POST değişkenlerini yakalamak için kullanışlıdır.
loop_end
WordPress loop'unda (döngüsünde) son yazı oluşturulduktan sonra çalışır.
loop_start
WordPress loop'unda (döngüsünde) ilk yazı oluşturulmadan önce çalışır.
parse_query
Sorgu parse (uygun kelime bulamadım) edilmesinin sonunda çalışır. FP: $wp_query nesnesinin içeriği bir liste olarak.
parse_request
WordPress'in ana fonksiyonu olan wpsanitize_comment_cookies
HTTP isteği ile çerezler okunduktan sonra çalıştırılır.
send_headers
wp ana fonksiyonunda temel HTTP header'ları (başlıkları) gönderildikten sonra çalışır. FP: global $wp nesnesine bir referans dizisi.
shutdown
Sayfa çıktısı tamamlandığında yani her iş bittikten sonra çalışır.
wp
wp ana fonksiyonu içerisinde, sorgular işletildikten, yazılar yüklendikten sonra fakat herhangi bir tema işlemi yapılmadan önce çalışır. Eğer yazı verilerine ulaşmak istiyorsanız faydalıdır ancak temaları çıktı için kullanamazsınız. FP: global $wp nesnesine bir referans dizisi.

İncelenmesi Gereken Kaynaklar

Writing a Plugin - Bir eklentinin nasıl yazılabilineceğine dair açıklama.
Eklenti Yazma - Bu da benden, eklenti nasıl yazılır?
Plugin API/Filter Reference - Filtre kancaları için referans listesi
Plugin Resources (Eklenti Kaynakları) - Eklentilerle ilgili kaynakların listesi.
Skippy's list (Skippy'nin listesi) -Olay ve filtre'lerin listesi.
WordPress Hooks - WordPress kancalarının tamamı için bir dizin, işinize çok yarayacaktır. Yeşil olanlar açıklamalı.
WordPress Hooks Database - Bütün WordPress kancalarıyla ilgili, hangi WP versiyonunda geldikleri ve onları kullanan kaynak kodlarına linkler içerir.
Angsuman's list - Gerçekten harika bir liste. Bütün kancaların tanımlandıkları, kullanıldıkları WP dosyaları içerisindeki yeri vs. listelenmiş. Kesinlikle incelenmeli.

Not: Kancaların kullanımı ile ilgili farklı örneklere add_action() fonksiyonu ile ilgili yazımda bulabilirsiniz.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=229.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“WordPress Action Hooks” yazısı için 9 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. brsyuksel dedi ki:

    Süper olmuş hocam ellerine sağlık. Özellikle benim gibi uzun uzun ingilizce makaleleri okumayı sevmeyenler için altın değerinde bir kaynak 🙂

    Teşekkür ediyoruz.

  2. Ahmet dedi ki:

    Gerçekten çok güzel bir kaynak. Bunları bilmemiz gerekli ama örnekler halinde olsaydı fena olmadı. Teşekkürler.

  3. Yakup Gövler dedi ki:

    @Ahmet,
    http://www.yakupgovler.com/?p=208 adresindeki add_action fonksiyonu ile ilgili yazımda bazı örnekler var. O örneklerden yola çıkarak, buradakileri de kullanabilirsiniz. Her bir hook için örnek yazmak gerçekten çok uzun zaman alacağından ilk zaman bulduğumda önemli ve işe yarar gördüklerimle ilgili örnekler yapacağım, bundan emin olabilirsiniz.

  4. Ahmet dedi ki:

    Çok sağolun. Okudum oradaki yazıyı baya faydalı. Teşekkürler.

  5. Emre Soytürk dedi ki:

    Bir fikir ile wordpress sayfam için plugin yazma işine soyunduğumda türkçe kaynak olarak yazılarınız çok işime yaradı öncelikle teşekkür ederim. Sonra soruma geçeyim.

    http://www.siteadı.com/anahtar/elma gibi "anahtar" ön eki ile gelen elma,armut vs. anahtar kelimeleri işleyebilmek için .htaccess yardımı ile anahtar.php sayfasına gönlendirme yaptım, lakin anahtar.php doğal olarak başlı başına bir sayfa gibi davrandı.

    Yapmak istediğim şey anahtar.php sayfasının bir wordress sayfası gibi davranması header,sidebar,foother gibi kısımları yüklemesi. sonra content kısmında ben gelen "anahtar/elma" gibi bir bağlantıyı işleyip elma ile alakalı konuları listeleticem.

    İşin özü harici bir sayfa nasıl wordpress blogumla birlikte çalışabilir ?

  6. Yakup Gövler dedi ki:

    http://www.yakuter.com/wordpress-sayfa-sablonu-nasil-yapilir/
    adresindeki sayfa şablonu oluşturma konusunu inceleyip, ona göre işlerinizi halletme yoluna gidebilirsiniz. Gelen URL'yi parçalayarak ilgili yeri almayı deneyebilirsiniz. Bu konuda ancak bu kadar yardımcı olabilirim, sonrası sizin kodlama bilginize kalmış.

  7. Emre Soytürk dedi ki:

    Hocam teşekkür ederim.
    Tam olarak aradığımı uzun arayışlar sonrasında buldum. belki bir arayanada benim yardımım dokunur düşüncesiyle geri geldim.
    Harici bir .php dosyasının wordpress ile kombine çalışmasını sağlamak için şu kodu sayfa başına eklemek yeterli oluyor.

  8. Yakup Gövler dedi ki:

    WP yorumlardaki kodları filtreler o nedenle kodlar görünmez. Aynı şeyi arayan arkadaşlar önceki mesajımda verdiğim adresi ziyaret etsinler.

  9. apply_filters ve add_filter · Yakup Gövler'in Not Defteri dedi ki:

    [...] fonksiyonu ve action hooks'lar hakkında yazılar yazmıştım. Bunları kullanarak WP'de olaylara müdahale edebiliyorduk. Bu [...]