web-dev-qa-db-ja.com

検索結果に関連タグを追加する

タグは私のプラットフォームの主要部分です。デフォルトの検索を使用して、 if 検索語がタグに一致する場合、結果ページに表示します。

<p>Are you looking for our <a href="TAG-URL">TAG-Name</a> page?</p>

タグには少なくとも1つの投稿を添付する必要があるため、空のタグは付けないでください。これを達成するための最軽量の解決策は何でしょうか。我々の検索機能は頻繁に使用されています。

1

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>'
        : '';
}

Search.php:

<?php echo wpse82525_link_search_to_tag(); ?>
4
diggy