我想在点击时更改徽标重定向。现在,当您单击徽标时,用户将被重定向到主页,但我希望将其重定向到另一个站点。我该怎么做?
答案 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>
我已经添加了目标代码以在新窗口中打开网站,这是我个人喜欢重定向到其他网站但是可选的。
你的主题文件看起来可能与此截然不同,如果没有看到某些代码就无法确定,但这应该会给你一个想法。
另请注意,主题更新可能会覆盖您的更改。这可以通过创建子主题来避免。
答案 3 :(得分:0)
根据您使用的主题,您可以尝试以下选项之一。
header.php
中查找代码。在徽标上执行检查元素,然后查看徽标文件周围的html代码。如果该代码直接出现在header.php
中,则您的任务很简单。只需更改代码以更新URL,而不要从home_url()
中读取它。 <a href="<?php echo home_url();?>">
之类的东西需要替换为<a href="https://www.example.com">
要查找的另一个选项是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的类名。