Fungsi pencarian default jika formulir pencarian kosong mengembalikan halaman beranda, saya ingin mengembalikan halaman "maaf pencarian Anda tidak menghasilkan apa-apa".
dan tiket ini memberitahu saya bahwa seharusnya berfungsi seperti itu! Adakah yang tahu cara mengubahnya selain menggunakan pengalihan .htaccess?
Saya menggunakan file search.php berikut: `
<div id="content" class="clearfix">
<div id="main" class="col700 left clearfix" role="main">
<h1 class="archive_title"><span>Search Results for:</span> <?php echo esc_attr(get_search_query()); ?></h1>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class('clearfix'); ?>>
<header>
<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
<p class="meta"><?php _e("Posted", "bonestheme"); ?> <time datetime="<?php echo the_time('Y-m-j'); ?>" pubdate><?php the_time('F jS, Y'); ?></time> <?php _e("by", "bonestheme"); ?> <?php the_author_posts_link(); ?> <span class="amp">&</span> <?php _e("filed under", "bonestheme"); ?> <?php the_category(', '); ?>.</p>
</header> <!-- end article header -->
<section class="post_content">
<?php the_excerpt('<span class="read-more">Read more on "'.the_title('', '', false).'" »</span>'); ?>
</section> <!-- end article section -->
<footer>
</footer> <!-- end article footer -->
</article> <!-- end article -->
<?php endwhile; ?>
<?php if (function_exists('page_navi')) { // if expirimental feature is active ?>
<?php page_navi(); // use the page navi function ?>
<?php } else { // if it is disabled, display regular wp prev & next links ?>
<nav class="wp-prev-next">
<ul class="clearfix">
<li class="prev-link"><?php next_posts_link(_e('« Older Entries', "bonestheme")) ?></li>
<li class="next-link"><?php previous_posts_link(_e('Newer Entries »', "bonestheme")) ?></li>
</ul>
</nav>
<?php } ?>
<?php else : ?>
<!-- this area shows up if there are no results -->
<article id="post-not-found">
<header>
<h1>No Results Found</h1>
</header>
<section class="post_content">
<p>Sorry, but the requested resource was not found on this site.</p>
</section>
<footer>
</footer>
</article>
<?php endif; ?>
</div> <!-- end #main -->
<div id="sidebar1" class="sidebar right col220">
<?php get_search_form(); ?>
</div>
</div> <!-- end #content -->
`
Jawaban:
Berikut adalah 3 cara untuk memperbaikinya, saya sarankan Anda menggunakan solusi 2, tetapi perhatikan jQuery di solusi 1 sebagai cara menghindari situasi di tempat pertama.
Bagi mereka yang ingin lebih banyak kode diposting dari tema pertanyaan penanya, ini bukan masalah tema, ini adalah masalah WordPress umum yang mempengaruhi semua situs WordPress.
Solusi 1
Anda dapat menemukan tutorial mendalam tentang cara memperbaikinya di sini:
http://wpengineer.com/2162/fix-empty-searches/
Solusi 2 (disarankan)
Diambil dari pos oleh Spitzerg http://wordpress.org/support/topic/blank-search-sends-you-to-the-homepage
Solusi 3
http://www.warpconduit.net/2011/08/02/fix-redirection-and-error-page-on-empty-wordpress-search/
Mirip dengan solusi 2 tetapi tidak luas dan sedikit berbeda.
sumber
Buat Halaman Search.php dan rekatkan kode ini dan ubah loop Anda dengan "get_template_part ('loop', 'search');
sumber
Membangun berdasarkan solusi Tom 2 tetapi memastikan tidak ada posting yang dikembalikan tambahkan filter permintaan seperti sebelumnya:
Tapi kali ini atur variabel global untuk mengatakan tidak ada hasil pencarian yang harus dikembalikan. Kemudian menggunakan kait posts_where pastikan tidak ada posting yang dikembalikan:
sumber
Periksa apakah permintaan pencarian kosong ( get_search_query () ), ganti saja IF pertama dengan itu:
sumber
Saya menanganinya dalam tema saya sebagai berikut. Coba gunakan kode ini:
Kami sedang menangani kondisi if (! Have_posts ()). Letakkan tepat setelah judul h3.archive Anda, sebelum if (have_posts) dimulai. Anda bahkan dapat memanggil fungsi form pencarian di area konten.
sumber
Saya juga menghadapi masalah yang sama, itu default yang diberikan oleh wordpress.
tetapi untungnya saya menemukan sesuatu yang membantu saya.
Tambahkan di bawah ini di "Functions.php"
dan kemudian ganti baris di bawah ini (baris no 15) di search.php
Mungkin itu akan membantu Anda juga
Untuk detail baca ini: Kustomisasi wordpress pencarian kosong
sumber
Salah satu cara untuk menghindari pencarian kosong adalah dengan melakukan pemeriksaan javascript untuk nilai kosong dari bidang pencarian dan jika bidang yang ditemukan kosong maka berhentilah mengirimkan formulir pencarian seperti di bawah ini:
sumber
sumber