更改Wordpress徽标单击重定向

时间:2015-06-27 14:33:29

标签: wordpress

我想在点击时更改徽标重定向。现在,当您单击徽标时,用户将被重定向到主页,但我希望将其重定向到另一个站点。我该怎么做?

5 个答案:

答案 0 :(得分:2)

我同意Stu Mileham的观点。实现您要求的另一种方法是使用JavaScript / jQuery。

将以下代码保存到.js文件中(例如,pageRedirect.js,假设放在主题的根文件夹中的js文件夹中):

(function($) {

    $(document).ready(function() {


        $('#pageLogo').on( "click", function(event) {
            event.preventDefault();
            window.location.assign("http://www.google.com/");
        });


    });  

})(jQuery);

要使之前的代码有效,您必须通过jQuery以某种方式选择页面徽标。 在上一个代码中,这是通过$(' #pageLogo')获得的,因为我假设您的徽标的id为pageLogo值。

当然,要使您的主题能够使用此pageRedirect.js文件,您必须通过将以下代码放入主题的functions.php文件来排队:

/**
 * Enqueue pageRedirect script.
 */
function pageRedirect_scripts() {

        wp_enqueue_script( 'page-redirect-js', get_template_directory_uri()  . '/js/pageRedirect.js', array('jquery'), '20150528', true );
}
add_action( 'wp_enqueue_scripts', 'pageRedirect_scripts' );

代码说明:

//-jQuery selects html element with id='pageLogo'
//-when it is clicked, it calls a function in which it passes the event
$('#pageLogo').on( "click", function(event) {

    //prevents page from redirecting to homepage        
    event.preventDefault();
    //redirects to your desired webpage
    window.location.assign("http://www.google.com/");
});

答案 1 :(得分:0)

取决于您的主题

某些主题创建者可让您更改管理

中的链接

有些主题创作者只相信点击你需要在主页上找到的徽标 - 所以你需要编辑主题

答案 2 :(得分:0)

如果您无法从管理员处更改链接,则必须编辑主题的header.php文件(最有可能的,取决于主题的构建方式)。< / p>

许多主题都有类似于以下内容的标记:

<a href="<?php echo home_url();?>"><img src="logo.jpg"></a>

您需要将其更改为:

<a href="http://siteyouwanttoredirectto.com" target="_blank"><img src="logo.jpg"></a>

我已经添加了目标代码以在新窗口中打开网站,这是我个人喜欢重定向到其他网站但是可选的。

你的主题文件看起来可能与此截然不同,如果没有看到某些代码就无法确定,但这应该会给你一个想法。

另请注意,主题更新可能会覆盖您的更改。这可以通过创建子主题来避免。

https://codex.wordpress.org/Child_Themes

答案 3 :(得分:0)

根据您使用的主题,您可以尝试以下选项之一。

  1. 浏览管理选项,查看主题是否提供直接的方法来更改徽标上的链接。
  2. 如果在管理选项中找不到,请尝试在header.php中查找代码。在徽标上执行检查元素,然后查看徽标文件周围的html代码。如果该代码直接出现在header.php中,则您的任务很简单。只需更改代码以更新URL,而不要从home_url()中读取它。 <a href="<?php echo home_url();?>">之类的东西需要替换为<a href="https://www.example.com">
  3. 要查找的另一个选项是get_custom_logo。一些主题从此功能获取徽标代码。您可以在主题中调用此方法之前应用过滤器来更改home_url,然后再删除过滤器。否则,您可以从wordpress复制代码,并在get_custom_link_logo中使用另一个命名为functions.php的函数对其进行更新,然后无论您使用的主题是get_custom_logo,都可以使用{而不是{1}}。

    get_custom_link_logo

    function get_custom_link_logo ( $blog_id = 0 ) {

这可能无法涵盖所有​​用例,但您可以理解。根据主题,您将为您的案例提供类似的解决方案。弄清楚您属于哪种情况,重要的是确定要添加徽标HTML的代码。 $html = ""; $switched_blog = false; if ( is_multisite() && ! empty( $blog_id ) && (int) $blog_id !== get_current_blog_id() ) { switch_to_blog( $blog_id ); $switched_blog = true; } $custom_logo_id = get_theme_mod( 'custom_logo' ); // We have a logo. Logo is go. if ( $custom_logo_id ) { $custom_logo_attr = array( 'class' => 'custom-logo', 'itemprop' => 'logo', ); /* * If the logo alt attribute is empty, get the site title and explicitly * pass it to the attributes used by wp_get_attachment_image(). */ $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' ); } /* * If the alt attribute is not empty, there's no need to explicitly pass * it because wp_get_attachment_image() already adds the alt attribute. */ $html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>', esc_url( "https://www.example.com" ), wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr ) ); } // If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview). elseif ( is_customize_preview() ) { $html = sprintf( '<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo"/></a>', esc_url( "https://www.example.com" ) ); } if ( $switched_blog ) { restore_current_blog(); } /** * Filters the custom logo output. * * @since 4.5.0 * @since 4.6.0 Added the `$blog_id` parameter. * * @param string $html Custom logo HTML output. * @param int $blog_id ID of the blog to get the custom logo for. */ return apply_filters( 'get_custom_logo', $html, $blog_id ); } 是一个很好的起点。

答案 4 :(得分:0)

在主题的页眉或页脚中使用此javascript:

<script>
document.getElementsByClassName("site-logo")[0].getElementsByTagName('a')[0].href="https://www.test.com";
</script>

我假设site-logo是您LOGO的类名。