XEM NGAY

Bài viết mới

Cách tạo custom search chức năng tìm kiếm nâng cao trên WordPress

Đoàn Long | 19 July, 2015 - 8042 Lượt xem

Doanduylong.com – Cách tạo custom search chức năng tìm kiếm nâng cao trên WordPress. Bạn đã bao giờ làm việc trên một trang web WordPress có rất nhiều bài tùy loại? Cũng như-là tìm kiếm WordPress là một thảm họa đó là lý do tại sao nhiều blogger sử dụng tìm kiếm tùy chỉnh của Google.

Cách tạo custom search chức năng tìm kiếm nâng cao trên WordPress

Vâng, chúng tôi đã làm việc trên một trang web có một số lượng tốt của các bài báo nguồn, video, sách, và viết blog. Sử dụng tìm kiếm WordPress mặc định chỉ là không cắt nó. Sử dụng tìm kiếm Google cũng không phải là một lựa chọn khả thi. Vì vậy, chúng tôi quyết định để tạo ra một hình thức tìm kiếm nâng cao cho phép người dùng chọn vùng mà các trang web mà họ muốn tìm kiếm bằng cách hạn chế bài tùy chỉnh các loại thông qua hộp kiểm tra. Người dùng có thể kết hợp các truy vấn tìm kiếm của họ và quan trọng nhất, chúng tôi đã làm cho nó để các hộp kiểm tra được lưu cùng với các truy vấn tìm kiếm. Điều này cho phép người dùng thấy chính xác những gì họ tìm kiếm, và họ có thể sửa đổi các thông số. Trong bài viết này, chúng tôi sẽ cho bạn thấy làm thế nào để tạo ra một hình thức tìm kiếm nâng cao trong WordPress sử dụng sức mạnh của các truy vấn tìm kiếm của WordPress và hạn chế các kết quả bằng cách tùy chỉnh các loại bài

Điều đầu tiên bạn cần làm là mở tập tin của bạn hoặc bất cứ nơi nào searchform.php hình thức tìm kiếm của bạn được lưu trữ. Sau đó, thêm mã code sau :

<input type="hidden" name="post_type[]" value="articles" /> 
<input type="hidden" name="post_type[]" value="post" /> 
<input type="hidden" name="post_type[]" value="videos" /> <input type="hidden" name="post_type[]" value="books" />

Đừng quên để thay thế các giá trị với các loại bài tùy chỉnh của bạn. Đoạn mã trên cơ bản giới hạn kết quả tìm kiếm của mình với những loại bài. Vâng, nếu bạn nhận thấy chúng ta khá nhiều thêm tất cả các loại có sẵn bài trừ trang. Vâng, đó là một lý do chính đáng để làm như vậy mà chúng tôi sẽ có được sau đó. Vì vậy, hãy chắc chắn bao gồm tất cả các loại bài viết mà bạn muốn tìm kiếm bằng cách sử dụng nút tìm kiếm chính. Những lĩnh vực được ẩn, do đó người dùng không thấy chúng.

Tiếp theo mở file search.php của bạn và dán mã sau vào nội dung vòng lặp của bạn, vì vậy người dùng của bạn có thể thấy các tùy chọn ở đầu trang.


<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>"> <input type="text" name="s" id="s" <?php if(is_search()) { ?>value="<?php the_search_query(); ?>" <?php } else { ?>value="Enter keywords &hellip;" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"<?php } ?> /><br /> <?php $query_types = get_query_var('post_type'); ?> <input type="checkbox" name="post_type[]" value="articles" <?php if (in_array('articles', $query_types)) { echo 'checked="checked"'; } ?> /><label>Articles</label> <input type="checkbox" name="post_type[]" value="post" <?php if (in_array('post', $query_types)) { echo 'checked="checked"'; } ?> /><label>Blog</label> <input type="checkbox" name="post_type[]" value="books" <?php if (in_array('books', $query_types)) { echo 'checked="checked"'; } ?> /><label>Books</label> <input type="checkbox" name="post_type[]" value="videos" <?php if (in_array('videos', $query_types)) { echo 'checked="checked"'; } ?> /><label>Videos</label> <input type="submit" id="searchsubmit" value="Search" /> </form>

Điều này sẽ thêm một hộp tìm kiếm trên các kết quả của bạn với các truy vấn tìm kiếm bên trong hộp đầu vào. Điều này cũng sẽ kiểm tra những bài loại đang được tìm kiếm trong truy vấn, và thực hiện các hộp kiểm thích hợp kiểm tra. Hãy nhớ rằng, làm thế nào chúng tôi đã thêm tất cả các loại bài trong lĩnh vực ẩn. Vâng, chúng tôi đã thêm nó chỉ như vậy chúng ta có thể chạy kiểm tra in_array và giữ các hộp kiểm đã kiểm tra. Không có tài liệu hướng dẫn về cách để làm điều này bằng cách khác, do đó, đây là cách tốt nhất, chúng tôi thấy rằng không được công việc. Dưới đây là một bản xem trước của bao hộp tìm kiếm sẽ:

Từ đó, người dùng chỉ có thể sửa đổi các tham số như họ hài lòng.

Hy vọng bài viết này giúp những người cần. Khi chúng tôi đang làm nghiên cứu, đã có loạt các bài báo không đầy đủ. Tìm thấy câu trả lời của việc thêm các hộp kiểm trong diễn đàn hỗ trợ WordPress trong một thread cũ tuy nhiên họ chỉ nói về lĩnh vực tiềm ẩn. Trong khi đó, chúng tôi muốn cung cấp cho người dùng tùy chọn để chỉnh sửa các truy vấn tìm kiếm. Props đểtammyhart cho chỉ cho chúng tôi một cách đúng đắn để làm các truy vấn kiểm tra sự biến.

1. Thêm Chức năng Codes (Xác định là file archive-search.php)


function template_chooser($template) { global $wp_query; $post_type = get_query_var('post_type'); if( $wp_query->is_search && $post_type == 'products' ) { return locate_template('archive-search.php'); // redirect to archive-search.php } return $template; } add_filter('template_include', 'template_chooser');

2. tạo ra kết quả tìm kiếm mẫu cho bài tùy loại (searcharchive.php)


<?php /* Template Name: Custom Search */ get_header(); ?> <div class="contentarea"> <div id="content" class="content_right"> <h3>Search Result for : <?php echo "$s"; ?> </h3> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div id="post-<?php the_ID(); ?>" class="posts"> <article> <h4><a href="<?php the_permalink(); title="<?php the_title(); ?>"><?php the_title(); ?></a><h4> <p><?php the_exerpt(); ?></p> <p align="right"><a href="<?php the_permalink(); ?>">Read More</a></p> <span class="post-meta"> Post By <?php the_author(); ?> | Date : <?php echo date('j F Y'); ?></span> </article><!-- #post --> </div> </div><!-- content --> </div><!-- contentarea --> <?php get_sidebar(); ?> <?php get_footer(); ?>

Chúc bạn thành công!

Bình luận trên Facebook