Bu eğitimde, arama sayfanıza arama terimini ve sonuç sayısını gösterecek basit bir işlev ekleyebileceğinizi paylaşacağız. Bu özellik, kullanıcılarımızdan biri tarafından e-posta yoluyla özel bir istekti. Bir konuyu ele almamızı istiyorsanız, öneride bulunmaktan çekinmeyin.

Temanızdaki search.php dosyasını açın ve aşağıdaki kodu ekleyin:
<h2 class="pagetitle">Search Result for <?php /* Search Count */ $allsearch = new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' — '); echo $count . ' '; _e('articles'); wp_reset_query(); ?></h2>
Yukarıdaki kod şöyle bir şey gösterecektir:
twitter için Arama Sonucu — 15 makale
Temanızın stil sayfasında .search-terms CSS sınıfını ekleyerek arama terimini de vurgulayabilirsiniz. İşte size başlangıç için basit bir CSS:
.search-terms {
background-color:yellow;
color:blue;
}
Bu, Arama Sayfanızı özelleştirirken yapabileceğiniz harika şeylerden sadece biri. Ayrıca, sonuçlarda arama terimlerini vurgulayabilir ve hatta WordPress aramanıza kategoriye göre arama özelliği ekleyebilirsiniz.
Kaynak: Michael Martin


Aniruddh
Bu kodu sidebar.php dosyasına kullanabilir miyim? Arama terimini ve sonuç sayısını kenar çubuğunda göstermem gerekiyor. Lütfen yardım edin.
Marco
thanks a lot for this snippet!
wp codex'e göre wp_specialchars fonksiyonu kullanımdan kaldırılmıştır. Bunun yerine esc_html kullanmanız gerektiğini söylüyor.
saygılarımla,
marco
Marco
Bir dahaki sefere yorumlara yakından bakacağım. CHADHAYTON, bunu nasıl halledebileceğinize dair bir bağlantı zaten yayınladı.
Henry
echo $wp_query->found_posts;
Bunu arama sayfanızın en üstüne eklemek, belirli bir arama için bulunan gönderi sayısını gösterecektir.
echo get_search_query();
Bu, arama terimini (site ziyaretçiniz tarafından arama kutusuna girilen) gösterecektir.
timer_stop(1);
Bu, aramanın çalışması için geçen süreyi gösterecektir.
Hep birlikte şöyle bir çıktı alabilirsiniz:
“kahve çekirdekleri” için yaptığınız arama, “0.87” saniyede “16” gönderi döndürdü.
jameslhf
Thank you Henry, that helped me!
Prasanna
Teşekkürler Henry. Bu bana çok yardımcı oldu.
chadhayton
Bu yazının ne kadar eski olduğunu söylemek zor, ancak WordPress 3.1, ayrı bir sorgu gerektirmeyen toplam arama sonuçlarını almak için bir yol içeriyor:
http://codex.wordpress.org/Creating_a_Search_Page#Display_Total_Results
Chris Murphy
Vay canına. WordPress'in arama sonuçlarını saymak bundan çok daha basit, işte burada:
global $wp_query; $count = sizeof( $wp_query->posts ); echo"<pre>"; //var_dump($wp_query);// The WP Query Object var_dump($wp_query->posts); // The WP Query Object's 'posts' property (note the plural) echo"</pre>";Bu kod parçasını arama şablonunuza eklerseniz, ‘$wp_query’ değişkeninin özelliklerini, özellikle de nesnenin ‘posts’ özelliğini çıkaracaktır. Bu, arama sorgusundan döndürülen gönderilerin bir koleksiyonunu depolayan bir dizidir ve ona eriştiğinizde, PHP’nin ‘count()’ veya ‘sizeof()’ fonksiyonunu kullanarak bu dizideki gönderi sayısını *saymak* gibi bir dizi şey yapabilirsiniz.
Yayın Kadrosu
Kodunuz biraz kesilmiş. Parçayı bize e-posta ile gönderebilir misiniz, deneyip bunun hakkında yazabilir miyiz? Elbette size tam kredi verilecektir.
Yönetici
Ilya
Chris,
Bu işe yaramaz. Önemli olan sorguyla eşleşen toplam sonuç sayısını bulmaktır - getirilen sayıyı değil. Bir sayfaya sığan sonuç sayısından daha fazla sonuç varsa, kodunuz yalnızca sayfadaki öğe sayısını alacaktır.
pete
Arama sonuçları kullanıcılar için kişisel bir şeydir, bu yüzden onlara bol miktarda bilgi verilmesi iyidir.
basilakis
So the code is right or not?
I see Konstantin has some point about the query, but the comments “ate” the results!
Yayın Kadrosu
Bu kod doğru. Çalışıyor, işaret ettiği tek sorun farklı şekillerde de yapılabileceği. Bu kodu bir müşterinin web sitesinde kullandık ve çalışıyor.
Yönetici
Konstantin
İyi fikir. Kötü uygulama.
Dünyada neden bir span etiketini çevirmek istersiniz???
Ve favorim:
_e('');Huh??Neden aynı aramayı iki kez sorgulamak istersiniz?
Hiç mantıklı değil.
Ama nefret etmek istemiyorum, işler böyle yapılmalı (benim mütevazı görüşüme göre):
post_count); ?>
Tom
Sayfa içi aramama yeterince düşünmüyorum. Bunun gibi bir şey harika çünkü sayfayı daha kişisel hale getiriyor.