1

我已经使用了这个线程的代码,试图从我的店面主题更改徽标的链接:

add_filter( 'get_custom_logo', 'wecodeart_com' );
function wecodeart_com() {
$custom_logo_id = get_theme_mod( 'custom_logo' );
$html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" 
itemprop="url">%2$s</a>',
        esc_url( 'www.google.com' ),
        wp_get_attachment_image( $custom_logo_id, 'full', false, array(
            'class'    => 'custom-logo',
        ) )
    );
return $html;   
} 

但它没有用。

如何从我的店面网站更改徽标的链接?

任何帮助表示赞赏。

4

2 回答 2

1

这将更改店面标题徽标链接(或站点标题链接)。您必须在以下函数中设置自定义徽标:

add_action( 'storefront_header' , 'custom_storefront_header', 1 );
function custom_storefront_header () {
    remove_action( 'storefront_header' , 'storefront_site_branding', 20 );
    add_action( 'storefront_header' , 'custom_site_branding', 20 );
    function custom_site_branding() {
        // HERE set the link of your logo or site title
        $link = home_url( '/my-custom-link/' );
        ?>
        <div class="site-branding">
            <?php
                if ( function_exists( 'the_custom_logo' ) && has_custom_logo() ) {
                    $custom_logo_id = get_theme_mod( 'custom_logo' );
                    if ( $custom_logo_id ) {
                        $custom_logo_attr = array('class' => 'custom-logo', 'itemprop' => 'logo' );
                        $image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true );
                        if ( empty( $image_alt ) ) {
                            $custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' );
                        }
                        $logo = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
                            esc_url( $link ),
                            wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )
                        );
                    }
                    elseif ( is_customize_preview() ) {
                        $logo = sprintf( '<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo"/></a>', esc_url( $link ) );
                    }
                    $html = is_front_page() ? '<h1 class="logo">' . $logo . '</h1>' : $logo;
                } elseif ( function_exists( 'jetpack_has_site_logo' ) && jetpack_has_site_logo() ) {
                    $logo    = site_logo()->logo;
                    $logo_id = get_theme_mod( 'custom_logo' );
                    $logo_id = $logo_id ? $logo_id : $logo['id'];
                    $size    = site_logo()->theme_size();
                    $html    = sprintf( '<a href="%1$s" class="site-logo-link" rel="home" itemprop="url">%2$s</a>',
                        esc_url( $link ),
                        wp_get_attachment_image( $logo_id, $size, false, array(
                            'class'     => 'site-logo attachment-' . $size,
                            'data-size' => $size,
                            'itemprop'  => 'logo'
                        ) )
                    );
                    $html = apply_filters( 'jetpack_the_site_logo', $html, $logo, $size );
                } else {
                    $tag = is_front_page() ? 'h1' : 'div';

                    $html = '<' . esc_attr( $tag ) . ' class="beta site-title"><a href="' . esc_url( $link ) . '" rel="home">' . esc_html( get_bloginfo( 'name' ) ) . '</a></' . esc_attr( $tag ) .'>';

                    if ( '' !== get_bloginfo( 'description' ) ) {
                        $html .= '<p class="site-description">' . esc_html( get_bloginfo( 'description', 'display' ) ) . '</p>';
                    }
                }
                echo $html;
            ?>
        </div>
        <?php
    }
}

代码进入活动子主题(或主题)的 function.php 文件中。

测试和工作。

于 2018-02-25T18:13:25.163 回答
0

如果您想在您自己的网站之外放置一个链接(即http://www.google.com/),您必须删除 home_url 调用以分配 $link 值。

所以而不是

$link = home_url( 'http://www.google.com/' );

你把

$link = 'http://www.google.com/';
于 2018-12-04T05:38:19.180 回答