WordPress arama sonucu 1 adet ise otomatik yönlendir


Bu fonksiyon yapılan arama sorgusunda eğer sonuç olarak 1 post varsa otomatik olarak o post adresine yönlendirme yapar. Mantık olarak sadece 1 sonucun gösterileceği arama sonucu sayfası zaten kullanışlı değil, ziyaretçinin otomatik olarak çıkan tek sonuca yönlendirilmesi iyi fikir.

wpmug - wordpress


Fonksiyonu temanızın functions.php dosyası içerisine yazarsanız çalışır.

add_action('template_redirect', 'one_match_redirect');
function one_match_redirect() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
        }
    }
}

Diğer başka bir fonksiyonda arama terimini yazı veya sayfaların başlıklarındaki kelimelerle eşleşirse o yazıya yönlendiriyor.

add_action('template_redirect', 'ara_match_redirect');
function ara_match_redirect() {
		if ( is_search() && strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === false && strpos($_SERVER['REQUEST_URI'], '/search/') === false ) {
		 global $wp_query;
		 if ( get_page_by_title( get_search_query(), 'OBJECT', 'post' ) ) {
            wp_redirect( get_permalink( get_page_by_title (get_search_query() )->ID ) );
			 }
        elseif ( get_page_by_title( get_search_query(), 'OBJECT', 'page' ) ) {
            wp_redirect( get_permalink( get_page_by_title( get_search_query() )->ID ) );
        } else {
		wp_redirect(get_bloginfo('home') . '/search/' . artiaralink(get_query_var('s')));
		}
		exit();
	}
}

Afiyet olsun.

Yazar: Volkan Yılmaz

Digital Marketing & Growth Hacking #SEO #wolkanca #cycling merhaba@volkanyilmaz.com.tr

“WordPress arama sonucu 1 adet ise otomatik yönlendir” için 16 yorum

  1. öncelikle kolay gelsin verdiğiniz kod çalışıyor güzel benim şöyle bir sorum olacak arama sayfasına yazılan bir kelime arama sonucu listeler geliyor fakat çıkan sonuçlardaki metin başlıklarına tıklanmıyor bunun için çözüm varmıdır .
    bu verdiğiniz kod sadece 1 tane çıkartıyor
    if ($wp_query->post_count == 1)
    if ($wp_query->post_count == 3)
    yapınca 3 tane ama benim istediğim yukarıda belirttiğim gibi arama sonucu çıkan listedeki konu başlıklarına linke gelsin onlar gelmiyor yardımınızı bekliyorum

  2. @fikri
    ben sanırım sorunu tam anlamadım biraz daha ayrıntı detay verir misin. mutlaka çözülebilir bir şeydir eminim. (imageshack.us/)resminin url ini buraya yapıştırıp ekran görüntüsü de verebilirsin anlayabilmem için.

    teşekkürler.

  3. kullandığım tema bu
    http://magazine3.com/gameup/demo

    örnek android diye arattır çıkan sonuçlarda başlıklara yıklanmıyor olay bu
    real football 2010 for android and iphone
    crush the castle, a new andriod game
    bunlar başlık altlarında yazılar var ama başlıklara tıklanıp içeriğe girilmesi lazım başlıklara tıklanmıyor umarım anlatabildim

  4. anladım fikri.

    🙂 senin sorununun bu benim sayfada konu ettiğim yazım ile alakası yok. senin sorunun teman.

    senin kullandığın temayı öyle yapmışlar, sen bunu düzenlemelisin. yapacakların şu:

    temanın search.php dosyasını bul, onun içerisinde div class="ptitle" ı bul orada muhtemelen sadece

    <?php the_title(); ?>

    yazıyor, sen bunu aşağıdaki ile değiştir:

    <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>

    bu kadar.

    olmazsa sana en kısa yolu söyleyeyim temanın search.php dosyasını silersen arshives.php den çalışacağı için sorunun kalmaz.

    kolay gelsin.

  5. çok sağol oldu yalnız ufak bir sorun oldu ilk olarak anlatim senin verdiğin kod bu =

    <a href=" rel=”bookmark” title=> a

    ilk olarak ekledim olmadı sonra arhive.php dosyasına baktım aynı orda ama bir fark var kod bu <a href=" rel=bookmark title=> a

    yani a etiketi tam kapanmamış arada bir iki boşluk var kapatma etiketini arhive.php dosyasındaki kodu aldım kopyala yapıştır dedim o zaman arada boşluk olunca oldu gerçi sen kodu düzgün yazmışın arası kapalı olunca olmuyor bir iki boşluk olunca oldu çok sağol birde başka bir sorunum var benim yapamadığım her sayfada bileşen nasıl gösteriliyor yine aynı tema sağ taraftaki bileşen modül diyorum ben onlara sadece ana sayfada çıkıyor diğer sayfalarda sağ taraf boşluk kalıyor her sayfada bileşen nasıl gösterebilirim ( takvim – giriş – yorum bileşenleri kastım )

  6. bir kaç gündür bakıyorum cevap yazmamışsınız bende son aklıma gelenleri yazdım biraz uzun oldu kusura bakma bana bu aşağıdaki yazılanlar lazım tavsiye ediceğin varmı acaba kolya gelsin

    her sayfada bileşen nasıl gösteriliyor yine aynı tema sağ taraftaki bileşen modül diyorum ben onlara sadece ana sayfada çıkıyor diğer sayfalarda sağ taraf boşluk kalıyor her sayfada bileşen nasıl gösterebilirim ( takvim – giriş – yorum bileşenleri kastım ) görünüm bileşenlerdeki

    ayrıca yorum onay bildirimi eklentisi varmı bir tane var yakup görevler sitesinde ama onu kurdum yorum yapana yorum onaylandı mesajı gitmiyor ve iletişim eklentisine ihtiyacım var contact form ve contact form 7 kurdum çalışmıyor mesaj yazıyorum gönder diyorum epostaya iletişim mesajı gelmiyor

    en önemliside forum eklentisi arıyorum var kurcaladım bir kaçını tam istediğim gibi değil

    simple press : kullandığım temada çalışmıyor – avatar resmine tıklıyorum gözat butonu açılmıyor panelden baktım yetkisini verdiğim halde

    bbpress : kurdum çok sade işlevsiz

    tal.ki forum : bbpress ile aynı

    wp-forum : bir nebze iyi

    zingiri forum : kuramadım mybb entegre olmuyor

    wp forum server : wp-forum gibi

    mingle forum : tam istediğim gibi ama açık var

    en son bulduğum phpbb ama wordpress nasıl entegre edicem entegre için

    wordpress phpbb bridge eklentisi var köprü mazivesi görüyor onu buluyorum ama normal phpbb kendi sitesinden indiriyorum phpbb forum eklentisini wp panelden eklenti kur deiğimde kurmuyor yada ftp den denediğimde yada ben yanlış işlem yapıyorum phpbb olarak wp eklentilerde arattıyorum sadece bridge diye var peki phpbb nasıl entegre edebilirim wp içine

  7. @fikri bey

    yazdıklarınızı bir anlasam cevap yazarım da zor anlıyorum çok deneyimsiz olduğunuzu görüyorum.

    şimdi ben hepsine cevap veririm de bu benim işim değil yani ben öğretmen değilim, siz hosting satın aldığınız yer ile görüşün.

    bileşenler sadece ana sayfada çıkıyorsa if is_home vardır o kodda 🙂

    kolay gelsin.

  8. bileşenler sadece ana sayfada çıkıyorsa if is_home vardır o kodda 🙂

    is_home kodu hangi sayfada onu bulamadım bulduğum zaman dilecekmiyim değiştirecekmiyim bende bunu anlamadım volkan bey ve yukarıdaki yazılanlar aslında zor değil anlaşılır şekilde yazdım estafurullah bu arada sizde sonuçta vakit ayırıp sağolun cevap yazdınız biraz tecrübe yok doğru wp yi 2 aydan beri kullanıyorum tam hakim olamadım işin açıkçası bileşenleri her sayfada göstermek istiyorum gerektiği zaman sadece ana sayfada göstermek istiyorum

    forum konusuna gelince phphbb kurmaya çalışacam diğerleri işimi görmüyor
    iletişim eklentisi bir tane var kullandığım ama ekranın sol tarafından çıkıyor magic form görüntüsü güzelde de ben bundan değişik kullanmak istiyorum yazdığım iletişim eklentisi çalışmıyor son olarak yorum onay bildirgesi acil ihtiyacım var sizin kullandığınız tavsiye edebileceğiniz bir tane varmı yakup görevlerinki çalışmıyor da ondan sağolun bu arada önceki ve şimdiki yardımlarınız için

  9. kodlar tema dosyasında muhtemelen sidebar.php veya o özel bir bileşense function.php içerisindedir fakat php bilmiyorsan kasma boşuna temayı değiştir gitsin.

  10. php bilgim var ama bu is_home index.php dosyasında var diğer dosyalarda yok siliyorum değişiklik olmuyor yada bir eklenti varmı witgetları yani bileşenleri her sayfada gösteren çok basit bir şey istiyorum olmuyor şaka gibi hatta index.php dosyasında <?php if (is_home()) { $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; var 1 olan yeri 2 yada başka sayı yaptım belki buradan değişir diye yine olmadı dediğim gibi eklenti varmı bunun için

  11. @fikri dediğim gibi temayı değiştir veya şurayu hatmen lazım: codex.wordpress.org .

    ben kendim 6-7 yıldır wp ile çalıştığım için her fonksiyonu ezberimde yani bu işim, o yüzden deneyim dedim önceki mesajımda.

    yanlış anlaşılmak istemem şaka da yapıyorum arada hastayım zaten, kısaca şu şarkıyı armağan ediyorum sana fikri wolkan.ca/wolkanca.mp3 🙂

  12. dediğin yeri biliyorum az önce display witget buldum çalışmadı geçmiş olsun bu arada profil resmini dikkat etmemiştim daha önce şimdi dikkatli bakınca oradaki ince espiriyide anlamış olduk ama sitene gelen ziyaretçilere ayıp olmuyormu kanatimce el hareketi biraz abes çünkü

  13. ben birşey merak etmiyorum sadece yaşadığım sorunlar ile ilgili sizden yardım istiyorum minnet rica olarak yoksa işim olmaz sizin avatar resminiz ile bu benim görüşüm sonuçta insanlar sitenize girip yardım istediklerinde karşılarında bu resmi görünce yardımı bırak yazmaz bile birde tescil belgen var yakışmamış bu benim görüşüm

  14. sayın fikri ateş ben görüşünüze saygı duyuyorum elbette yalnız benim avatarımdan ne istiyorsunuz ben onu anlamadım 🙂

    bu sayfa sizin sorularınıza cevap bulma yeri değil, yukarıda okursanız başlık ve içerik yorumlarınız ile alakalı değil, bu konu altında bana yazdığım konu içeriğinde one_match_redirec ve diğer bonus fonksiyon hakkında her şeyi sorabilirsiniz.

    bu sitede 45bin den fazla yorum var, kitabını çıkartmak isteyenden, koca arayana kadar bir sürü insan yazıyor, inanın ben vakit ayırıp burada cevap yazarak yardımcı olmaya çalıştım.

    size yardım edebileceğim kadar yardımcı oldum, polimik yapmak işe yaramaz dediğim gibi çok yorum gördü bu blog 🙂 siz en iyisi daha fazla destek istiyorsanız mail atın, ben size mail ile yazarım. aşağıda sağ tarafta mail adresim var.