tomatoes * * Set 'phrase' to something else than 'not' to make the search term a phrase. * * @global object $wpdb The WordPress database interface. * * @param array $atts The shortcode attributes. If 'term' is set, will use it as * the search term, otherwise the content word is used as the term. * @param string $content The content inside the shortcode tags. * * @return string A link to search results. */ function relevanssi_shortcode( $atts, $content ) { $attributes = shortcode_atts( array( 'term' => false, 'phrase' => 'not', ), $atts ); $term = $attributes['term']; $phrase = $attributes['phrase']; if ( false !== $term ) { $term = rawurlencode( relevanssi_strtolower( $term ) ); } else { $term = rawurlencode( wp_strip_all_tags( relevanssi_strtolower( $content ) ) ); } if ( 'not' !== $phrase ) { $term = '%22' . $term . '%22'; } $link = get_bloginfo( 'url' ) . "/?s=$term"; $pre = ""; // rel='nofollow' for Google. $post = ''; return $pre . do_shortcode( $content ) . $post; } /** * Does nothing. * * In normal use, the [noindex] shortcode does nothing. * * @param array $atts The shortcode attributes. Not used. * @param string $content The content inside the shortcode tags. * * @return string The shortcode content. */ function relevanssi_noindex_shortcode( $atts, $content ) { return do_shortcode( $content ); } /** * Returns nothing. * * During indexing, the [noindex] shortcode returns nothing. * * @param array $atts The shortcode attributes. Not used. * @param string $content The content inside the shortcode tags. * * @return string An empty string. */ function relevanssi_noindex_shortcode_indexing( $atts, $content ) { return ''; } /** * Returns a search form. * * Returns a search form generated by get_search_form(). Any attributes passed to the * shortcode will be passed onto the search form, for example like this: * * [searchform post_types='post,product'] * * This would add a * * * * to the search form. * * @param array $atts The shortcode attributes. * * @return string A search form. */ function relevanssi_search_form( $atts ) { $form = get_search_form( false ); if ( is_array( $atts ) ) { $additional_fields = array(); foreach ( $atts as $key => $value ) { if ( 'dropdown' === $key ) { switch ( $value ) { case 'category': $name = 'cat'; break; case 'post_tag': $name = 'tag'; break; default: $name = $value; } $args = array( 'taxonomy' => $value, 'echo' => 0, 'hide_if_empty' => true, 'show_option_none' => __( 'None' ), 'name' => $name, ); $additional_fields[] = wp_dropdown_categories( $args ); } else { $key = esc_attr( $key ); $value = esc_attr( $value ); $additional_fields[] = ""; } } $form = str_replace( '', implode( "\n", $additional_fields ) . '', $form ); } /** * Filters the Relevanssi shortcode search form before it's used. * * @param string The form HTML code. */ return apply_filters( 'relevanssi_search_form', $form ); }