特定页面的Alt页眉徽标和链接

时间:2018-06-08 作者:user3783905

构建一个WP站点,其中两个父类别的样式类似于两个不同的分区/站点。

我正在使用自定义徽标(在外观/自定义中设置),使用下面的功能,我可以成功地将其替换为特定页面和类别上的自定义徽标。如何还包括自定义链接而不是网站主页?

function change_logo_on_category($html) {

  if (is_page($page = \'136\'))

    $html = preg_replace(\'/<img(.*?)\\/>/\', \'<img src="http://customlogo.png" class="custom-logo" alt="" itemprop="logo" />\', $html);

  elseif ( in_category( 29 ) || post_is_in_descendant_category( 29 ))

    $html = preg_replace(\'/<img(.*?)\\/>/\', \'<img src="http://customlogo.png" class="custom-logo" alt="" itemprop="logo" />\', $html);

  return $html;   
}
add_filter(\'get_custom_logo\',\'change_logo_on_category\');

1 个回复
SO网友:cjbj

您并没有使用get_custom_logo 滤器正如您从源代码中看到的$html 是传递给它的,但是$blog_id. 您可以使用后者来执行preg_replace 在这样的链接上:

add_filter (\'get_custom_logo\',\'wpse305624_change_logo_link\',10,2);
function wpse305624_change_logo_link ($html,$blog_id) {
  $homelink = get_home_url ();
  $bloglink = get_permalink ($blog_id); // or anything else, for instance the blogs\'s parent
  $html = preg_replace ($homelink,$bloglink,$html);
  return $html;
  }
顺便说一下,您也可以在get_theme_mod (在开始时调用get_custom_logo) 首先修改返回的图像id,这样就不必执行preg_replace 之后不幸的是,我没有看到一种同样优雅的方式来操纵url。

结束

相关推荐

Site logo is not clickable

我正在使用图像作为我的网站徽标,并且图像在网站上显示良好。然而,当图像位于“a”标记内时,它是不可点击的。这是我的代码:<div class=\"site-branding\"> <a href=\"<?php echo bloginfo(\'url\'); ?>\"> <img class=\"site-logo img-responsive\" src=\"<?php echo bloginfo(\'url\'); ?&