Sayfaya link verme ve kategorileri gizleme

Başka bir blogun header kısmını düzenlerken büyük bir sorunla karşılaştım. Yeni tasarımda page kısımları sayfanın en üstündeydi. Bu sayfaları, blog yöneticisi sadece sidebar kısmında göstermek istiyordu. Doğal olarak, bu yukarıdaki pageleri gizlemem gerekiyordu. Bu sorunu ufak bir kod yardımıyla çözdüm. Aslında kolay olan bu işlemi çoğu yerde eklenti yardımıyla çözmeye kalkışıyorlar. Bu da db’inizide yeni tablolar anlamına geliyor ve sitenizin hızı gün geçtikçe yavaşlıyor. İstediğininiz kategoriyi yada page’i saklamak istiyorsanız exclude= id kodunu sayfanızda gerekli yere koymanız yeterli olacaktır. =id yazan yeri istediğiniz gibi düzenleyip, birden fazla yazı ya da kategoriyi gizleyebilirsiniz (3,4,5) gibi
Eğer page’leri gizlemek istiyorsanız., temanızda wp_list_pages
Kategorileri gizlemek istiyorsanız, wp_list_categories kısımlarında düzenleme yapmanız yeterli olacaktır.
Örnek kod:
wp_list_pages(’sort_column=menu_order&depth=1&title_li=&exclude=2,4,6′
Bu sorunu çözdükten sonra sayfanın üst kısmı tamamen boş kaldı ve buraya Home ve subdomain linklerini koymam gerekiyordu. Normal link ekler gibi ekleme şansım olmadı. Çünkü pagelerin durduğu kısmın kod yapısı şu şekildeydi:
id="base">
<div id="menu">
<ul><?php
$options = get_option(’widget_pages’);
$exclude = empty($options['exclude'] ) ? ” : $options['exclude'];
wp_list_pages(’sort_column=menu_order&depth=1&title_li=&exclude=’.$exclude);
?>
</ul>
</div>
Bu kısımda Home linkini bir türlü ekleyemedin ve sorunu şu şekilde çözdüm:
<div id="menu">
<ul><?php
function gdm_add_link_home($content) {
$homeItem = "<li class=’page_item";
if (is_home())
$homeItem .= " current_page_item’";
else
$homeItem .= "’";
$homeItem .= "><a href=’" . get_bloginfo(’url’) . "’ title=’Home’>Home</a></li>";
$pos = strpos($content, ‘<ul>’);
if ($pos === false) {
return $homeItem . $content;
} else {
$preContent = substr($content, 0, $pos + 4);
$postContent = substr($content, $pos + 4);
return $preContent . $homeItem . $postContent;
}
}
add_filter(’wp_list_pages’, ‘gdm_add_link_home’);
$options = get_option(’widget_pages’);
$exclude = empty($options['exclude'] ) ? ” : $options['exclude'];
wp_list_pages(’sort_column=menu_order&depth=1&title_li=&exclude=2150,2153,3493,3483,2151,2154,6036′.$exclude);
?>
</ul>
</div>
Eğer temanızda buna benzer bir kod düzeni varsa siz de bu şekilde home linkini görüntüleyebilirsiniz.
İkinci sorun ise Home kısmının yanında subdomaine link vermekti. Gördüğünüz kod yapısı içinde klasik link verme işlemini her yapmaya çalışımda hatayla karşılaştım. Bunun başka bir yolu varsa da ben bulamadım. Aklıma bir cinlik geldi ve bakın sorunu nasıl çözdüm:
<?php /*
Template Name: theme adı
*/
?>
<meta HTTP-EQUIV=Refresh CONTENT=0;URL=url></meta>
Bu kodu boş bir notepad dosyasına yapıştırın. Url kısmını ve theme adı yazan yerleri istediniz biçimde düzenledikten sonra dosyanıza bir isim vererek ve uzantısını php olarak kayıt edin. Bu oluşturduğunuz php dosyasını ftp yardımıyla sunucunuzdaki temanızın içine atın. Wordpressin admin paneline giriş yapıp yeni bir sayfa oluşturun. Başlık kısmına gözükecek ismi yazın. Metin editörüne birşey yazmadan yan taraftaki Template seçeneğinden sunucunuza yüklediğiniz dosyayı seçin. Hepsi bu kadar. Artık linkiniz sayfanızda görüntülenecek. Bu arada content değerini arttırarak yönlenme süresini değiştirip değişik amaçlarla da kullanabilirsiniz.
Bu yazı wordpress 2.7.1 için yazılmıştır.
Template









