web-dev-qa-db-ja.com

カスタムロゴURL |テーマに挿入したカスタムロゴのURLを印刷する

_custom_logo()関数の個別のコンポーネントを使用して、ロゴの独自の表示を作成しようとしています。

RLと画像参照に個別にアクセスする方法について誰かに教えてもらえますか?

多くの人がURLを変更する方法を尋ねてきましたが、これは私が回答を必要とする質問ではありません。私はこのようにコードを操作できるようにしたいと思います(これは私の計画の基本的な例なので、プルスルーできるようにする2つのコンポーネントを理解できます)。

<div class="site-branding">
    <a href="<?php get_custom_logo_url(); ?>" class="box-link">
        <img src="<?php get_custom_logo_src(); ?>" class="site-logo" alt="Logo">
    </a>
</div>

私は空白のテーマを使用しており、ロゴとリンクはすでにWordpressのバックエンドに配置されています。

このスニペットをヘッダーで使用すると、ロゴとリンクが期待どおりに表示されます。

<?php the_custom_logo(); ?>

すべての貢献者、ジェイソンに感謝します。

1

wp_get_attachment_image_srcを使用して、画像のプロパティとURLを取得します。

$logo = get_theme_mod( 'custom_logo' );
$image = wp_get_attachment_image_src( $logo , 'full' );
$image_url = $image[0];
$image_width = $image[1];
$image_height = $image[2];

編集コメントに基づいて情報を追加します。

それが指すURLは単にhome_urlで作成されます。

esc_url( home_url( '/' ) );

このメソッドを使用するときにしばしば忘れられるもう1つのことは、メディアに設定されている場合、altのコンテンツを尊重することです。

$alt = get_post_meta( $logo, '_wp_attachment_image_alt', true );
if ( empty( $alt ) ) {
    // Use site title if no alt is provided.
    $alt = get_bloginfo( 'name', 'display' );
}

get_custom_logo のソースを確認することをお勧めします。

WordPress.org/themes でリリースするためにこのテーマを開発している場合も、言及する価値があります。独自のソリューションを展開する場合は、the_custom_logoまたはget_custom_logoを使用する必要があります。

このため、get_custom_logoにはHTML出力用のフィルターがあり、必要なビットを使用して置き換えるのが最適な場合があります。関数get_custom_logothe_custom_logoで使用)も、マルチサイトのように扱い、カスタマイザープレビュー用にプレースホルダーが存在することを確認します。使用法は次のようになります。

add_action( 'get_custom_logo', function( $html ) {
    $new_url = 'href="' . get_theme_mod( 'custom_logo_url', esc_url( home_url( '/' ) ) ) .'"';
    $new_link_class = 'class="box-link"';
    $html = str_replace( 'href="' . esc_url( home_url( '/' ) ) . '"', $new_url, $html );
    $html = str_replace( 'class="custom-logo-link"', $new_link_class, $html );
    return $html;
} );

これにより、カスタマイザコントロールから取得できるtheme_mod custom_logo_urlの値が読み取られ、例ではクラスが.custom-logo-linkから.box-linkに変更されます。

2
Tim Elsass