• Saya sedang mencoba untuk membuat advance search pada WP, saya sudah berhasil membuat formnya tetapi masih bingung untuk functionnya.

    berikut form dan function saat ini mohon bantuannya

    Form

    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
        <form method="get" id="searchform" action="<?php echo $_SERVER['PHP_SELF']; ?>/">
            <input type="text" value="<?php the_search_query(); ?>" name="s"  id="formtxtSearch" onfocus="if (this.value == '<?php the_search_query(); ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '';}" />
    		<select name="release" class="selectopt">
    			<option value="All">All</option>
    			<option value="2012">2013</option>
    			<option value="2013">2012</option>
    			<option value="2011">2011</option>
    		</select>
    		<select name="categori" class="selectopt">
    			<?php
    			$release = get_categories();
    			foreach ($release as $year) {
    			echo '<option value="', $year->slug, '">', $year->name, "</option>\n";
    			}
    			?>
    		</select>
          <input type="submit"  value=" " class="btnSearch" />
    	</form>
    </form>

    Function

    function searchfilter($query) {
    
    	if ($query->is_search)
    	{
    		$query->set("post_type", "post");
    	}
    	return $query;
    }

Melihat 3 balasan - 1 sampai 3 (dari total 3)
  • Pencetus Utas herukrayz

    (@herukrayz)

    owh iya tambahan, untuk yang option release datanya diambil dari custome field.

    sangat membantu terimakasih (resep makanan)

    @herukrayz Pertama saya melihat koding agan, ada kesalahan mendasar dalam html-nya yaitu ada <form> di dalam <form>.

    Kedua, select name release itu field apa? category? custom taxonomy? Ane asumsikaan sebagai custom taxonomy. Disamping itu function searchfilter yang agan buat masih kurang. Coba tambahkan ini:

    function searchfilter($query) {
    	//tambahkan query variable categori
    	function add_query_categori( $vars ){
    	  $vars[] = "categori";
    	  return $vars;
    	}
    	add_filter( 'query_vars', 'add_query_categori' );
    	$categori = get_query_var('categori');
    
    	//tambahkan query variable release
    	function add_query_release( $vars ){
    	  $vars[] = "release";
    	  return $vars;
    	}
    	add_filter( 'query_vars', 'add_query_release' );
    	$release = get_query_var('release');
    
    	if ($query->is_search)
    	{
    		//post type post
    		$query->set("post_type", "post");
    
    		//categori
    		$query->set("category_name", $categori);
    		$query->set(
    			"tax_query" => array(
    				array(
    					//release
    					"taxonomy" => "release",
    					"field"    => "slug",
    					"terms"    => $release,
    				),
    			),
    		);
    	}
    	return $query;
    }
    add_filter('pre_get_posts','searchfilter');
    

    Semoga membantu 🙂

Melihat 3 balasan - 1 sampai 3 (dari total 3)
  • Topik ‘membuat advance search’ tertutup untuk balasan baru.