Les tags sont une partie importante de ma plateforme. En utilisant la recherche par défaut, si le terme recherché correspond à un tag, sur la page des résultats, je souhaite qu'il affiche:
<p>Are you looking for our <a href="TAG-URL">TAG-Name</a> page?</p>
La balise doit avoir au moins une publication, donc pas de balises vides. Quelle serait la solution la plus légère pour y parvenir? Notre fonction de recherche est utilisée très fréquemment.
Dans functions.php:
function wpse82525_link_search_to_tag()
{
// check if search archive is being displayed
if( ! is_search() )
return;
// get search query var
$sqv = get_query_var( 's' );
// get tag base
$tagbase = get_option( 'permalink_structure' )
? get_option( 'tag_base' )
? trailingslashit( get_option( 'tag_base' ) )
: 'tag/'
: '?tag=';
// return link if matching tag is found
return ( get_term_by( 'slug', $sqv, 'post_tag' ) )
? '<p>' . sprintf(
__( 'Are you looking for our <a href="%1$s">%2$s</a> page?', 'txtdomain' ),
home_url( $tagbase . sanitize_title_with_dashes( $sqv ) ),
$sqv
) . '</p>'
: '';
}
Dans search.php:
<?php echo wpse82525_link_search_to_tag(); ?>