将多个徽标转换为_CUSTOM_徽标

时间:2018-04-08 作者:user8463989

当页面第一次加载时,徽标非常大,但当我向下滚动时,菜单高度降低,徽标变小。这是如果我只是使用bloginfo()引用徽标,但我希望能够在必要时通过customizer修改徽标。

我这样称呼这个标志:

the_custom_logo();
它会显示出来,但当向下滚动时,它不会变小,就像我使用下面的一样。是否可以将以下内容转换为\\u custom\\u徽标()?

<div class="logo">
    <a id="logo" href="#" data-height="110" data-padding="0"><img class="logo-main scale-with-grid" src="<?php bloginfo(\'template_directory\'); ?>/images/animals2.png" data-retina="<?php bloginfo(\'template_directory\'); ?>/images/retina-animals2.png" data-height="209" alt="animals2">
    <img class="logo-sticky scale-with-grid" src="<?php bloginfo(\'template_directory\'); ?>/images/animals2.png" data-retina="content/animals2/images/retina-animals2.png" data-height="209" alt="animals2">
    <img class="logo-mobile scale-with-grid" src="<?php bloginfo(\'template_directory\'); ?>/images/animals2.png" data-retina="<?php bloginfo(\'template_directory\'); ?>/images/retina-animals2.png" data-height="209" alt="animals2">
    <img class="logo-mobile-sticky scale-with-grid" src="<?php bloginfo(\'template_directory\'); ?>/images/animals2.png" data-retina="content/animals2/images/retina-animals2.png" data-height="209" alt="animals2"></a>
</div>

1 个回复
SO网友:Nathan Johnson

您可以使用get_custom_logo 过滤器可根据需要自定义自定义徽标的HTML。例如,您可以这样做:

您可以进一步使用wp_get_attachment_image_attributes 筛选以获取图像src 徽标的。问题是如何使用它。下面的示例代码使用一个类将图像源存储为属性,以便可以在其他过滤器中使用。

namespace WordPress\\StackExchange;
class logo {
  protected $src = \'\';
  public function init() {
    \\add_filter( \'wp_get_attachment_image_attributes\', [ $this, \'img_atts\' ] , 10, 3 );
    \\add_filter( \'get_custom_logo\', [ $this, \'wpse_custom_logo\' ], 10, 2 );
  }
  public function image_atts( $attr, $attachment, $size ) {
    if( \'custom-logo\' ]=== $attr[ \'class\' ]  ) {
      $this->src = $attr[ \'src\' ];
    }
    return $attr;
  }
  public function wpse_custom_logo( $html, $blog_id ) {
    return sprintf( \'
      <div class="logo">
        <a id="logo" href="#" data-height="110" data-padding="0">
          <img class="logo-main scale-with-grid" src="%1$s" data-retina="%2$s" data-height="209" alt="animals2">
          <img class="logo-sticky scale-with-grid" src="%1$s" data-retina="%2$s" data-height="209" alt="animals2">
          <img class="logo-mobile scale-with-grid" src="%1$s" data-retina="%2$s" data-height="209" alt="animals2">
          <img class="logo-mobile-sticky scale-with-grid" src="%1$s" data-retina="%2$s" data-height="209" alt="animals2">
        </a>
      </div>\',
    \\esc_url( $this->src ),
    \\esc_url( get_template_directory_uri() . \'/content/animals2/images/retina-animals2.png )\'
    );
  }
}
\\add_action( \'init\', [ new logo(), \'init\' ] );
这将包含在您的功能中。php。尽管如此,由于这4幅图像都是相同的,可能有更好的方法来实现这一点。

结束

相关推荐

Update user meta on logout

我已经看到了一些答案,但这些问题已经有好多年的历史了,在尝试了他们的回答之后,我没能让它起作用。我需要在注销过程中更新用户元数据,特别是在用户空闲时间过长时发生的自动注销过程。我正在使用下面的代码,但用户元没有更新。add_action(\'clear_auth_cookie\', \'t_o_update\'); function t_o_update() { $user = wp_get_current_user(); update_user_meta($user-&g