searchform.php Nedir? Nasıl Kullanılır?

28 Ekim 2019 tarihinde Emre Can ÖZTAŞ tarafından paylaşıldı.

WordPress theme (tema) geliştirme aşamasında; muhtemelen “Arama” özelliğine ihtiyaç duyarsınız. Bir arama formu yaparsınız ve bunu temanıza eklersiniz. İşte burada kullanabileceğiniz en aktif elemanlardan birisi de: searchform.php dosyasıdır.

searchform.php dosyası, oluşturmuş olduğunuz arama formunu saklayabileceğiniz bir dosyadır.

searchform.php dosyasına ihtiyacınız var mı? Hayır. Kullanmak isteyip istememek tamamen sizin elinizde. Örneğin; header.php dosyasında oluşturmuş olduğunuz navbar’a arama formunuzu da ekleyebilirsiniz. Herhangi bir sıkıntı olmaz.

Örnek bir arama formumuz aşağıdaki gibi olsun.

<form method="get" action="<?= home_url('/'); ?>">
    <div class="form-group">
        <input class="form-control" name="s" type="text" required="">
    </div>
    <button class="btn btn-block m_btn-primary" type="submit">Ara</button>
</form>

Yukarıda örnek bir form oluşturduk (Bootstrap ile). Burada; action kısmına, home_url(‘/’) yazdık. Böylelikle; sitenin kök dizinini işaret ediyoruz. Yani; https://emrecanoztas.com/ gibi. home_url() metoduna daha sonraki yazılarda değineceğim.

name kısmı ‘s’ şeklinde olmalı ve metod olarak ‘GET’ kullanılmalıdır. Buradaki; s ismi, WordPress tarafından default (varsayılan) olarak kullanılır. İsterseniz; name kısmına s yerine farklı bir isim de verebilirsiniz. Fakat buna göre de çeşitli değişiklikleri yapmalısınız. Bu konuya da ilerleyen yazılarda değineceğim.

Yukarıdaki formumuzu, herhangi bir sayfada da muhafaza edebiliriz. Fakat; WordPress’in sunduğu searchform.php dosyasında saklamak daha mantıklı olacaktır. O halde yukarıdaki formumuzu; searchform.php adında bir dosya oluşturup, ekleyelim.

Peki bu formumuzu nasıl çağırabiliriz?

 get_search_form()

Yazımızın giriş kısmında; searchform.php adında bir dosya oluşturduk ve formumuzu da bu dosyaya ekledik. Şimdi sıra geldi; oluşturduğumuz formumuzu çağırmaya.

Oluşturduğumuz; searcform.php dosyasını bu metot ile çağırabiliriz.

<?php 

get_search_form(); 

Yukarıdaki ifade ile searchform.php dosyasındaki formumuz eklenir. Dolayısıyla; yazdığımız bu metot, form çağırma işlemini yerine getirir.

Eğer elinizde; searchform.php adında bir dosya yoksa; WordPress’in kendi arama formu eklenir. WordPress’in kendi arama formu da aşağıdaki gibidir.

<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
    <div><label class="screen-reader-text" for="s">Search for:</label>
        <input type="text" value="" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="Ara" />
    </div>
</form>

WordPress’in kendi formu üzerinden de gidebilirsiniz. CSS’leriyle oynayarak uygun yapıyı kurabilirsiniz.

Burada dikkat etmeniz gereken bir kaç önemli husus var. Şimdi bu hususlara kısaca değinmek istiyorum.

get_search_form() metodu aslında şu yapıdadır. get_search_form($status). Burada; $status değişkeni, Boolean (True veya False) tipindedir. Eğer elinizde; searchform.php dosyası yoksa ve $status değişkeni true ise yukarıdaki WordPress formunu verir. false değerini aldığında ise; string olarak formu verir. Şayet elinizde searchform.php dosyası varsa; o zaman bu değişken görmezden gelinir.

searchform.php dosyasını kullanmak istemezseniz; bir alternatif daha var. Kısaca; bu konuya da değinelim.

functions.php Dosyasında get_search_form() Metodunu Düzenleme

functions.php dosyası içerisinde; searchform.php dosyası oluşturmadan, kendi formunuzu oluşturabilirsiniz. Bunun için yapmanız gereken bir fonksiyon oluşturmaktır. Aşağıdaki gibi.

<?php

function set_my_form() {
    $my_form = '<form method="get" action="' . home_url('/') . '">
                <div class="form-group"> 
                    <input class="form-control" name="s" type="text" required=""> 
                </div> 
                    <button class="btn btn-block m_btn-primary" type="submit"></button>
                </form>';
    
    return ($my_form);
}

add_filter('get_search_form', 'set_my_form');

İlk oluşturduğumuz formu; functions.php dosyasında yeniden oluşturduk. Artık; get_search_form() metodunu çağırdığımızda, yukarıdaki form gelecektir.

Her iki şekilde de kullanım sağlabilirsiniz. Fakat; en sağlıklı yol: searchform.php dosyasını oluşturmak ve arama formunuzu bu dosya içerisinde saklamaktır.

Kategoriler: [Wordpress] Etiketler: #functions.php #get_search_form() #searchform.php #wordpress

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.