我遇到了问题,我在wordpress \ wp-content \ themes \ boombox \ searchform.php中添加了一个代码:
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
<label>
<span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span>
<input type="search" class="search-field" placeholder="Search..." value="<?php echo esc_attr( get_search_query() ); ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ); ?>" />
</label>
<?php
// output all of our Categories
// for more information see http://codex.wordpress.org/Function_Reference/wp_dropdown_categories
$swp_cat_dropdown_args = array(
'show_option_all' => __( 'Any Category' ),
'name' => 'swp_category_limiter',
);
wp_dropdown_categories( $swp_cat_dropdown_args );
?>
<input type="submit" class="search-submit" value="Search" />
</form>
在wordpress \ wp-content \ themes \ boombox \ functions.php中,我添加了代码:
function my_searchwp_include_only_category( $ids, $engine, $terms ) {
// if and only if a category ID was submitted:
// we only want to apply this limitation to the default search engine
// if you would like to change that you can do so here
if ( ! empty( $_GET['swp_category_limiter'] ) && 'default' == $engine ) {
$category_id = absint( $_GET['swp_category_limiter'] );
$category_args = array(
'category' => $category_id, // limit to the chosen category ID
'fields' => 'ids', // we only want the IDs of these posts
'posts_per_page' => -1, // return ALL posts
);
$ids = get_posts( $category_args );
// if there were no posts returned we need to force an empty result
if ( 0 == count( $ids ) ) {
$ids = array( 0 ); // this will force SearchWP to return zero results
}
}
// always return our $ids
return $ids;
The Categories that the search displays
我的代码有什么问题? 感谢您的帮助