如何设置自定义徽标图像的SRC URL?

时间:2018-01-27 作者:A.K.

如何设置自定义徽标图像的SRC URL?我认为这可以通过函数来实现。

通常这是在“站点标识”中完成的,但是我想使用外部托管的图像(如果您想知道的话,可以在Amazon S3上托管)。Wordpress只允许将自定义徽标上传到Wordpress的同一安装中(据我所知)

请注意,我想设置SRC(图像源url,而不是href)。

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

如果您在customizer中设置徽标,并且您的主题使用the_custom_logo()get_theme_logo() 要显示徽标,则可以使用wp_get_attachment_image_attributes 并检查类别是否为“自定义徽标”。如果是,则将src属性更改为任意位置。您仍然需要在自定义程序中设置徽标。

namespace StackExchange\\WordPress;
function imageAtts( array $attr, \\WP_Post $attachment, $size ) : array {
  if( \'custom-logo\' === $attr[ \'class\' ] ) {
    $attr[ \'src\' ] = \'https://example.com/logo.jpg\';
  }
  return $attr;
}
\\add_filter( \'wp_get_attachment_image_attributes\', __NAMESPACE__ . \'\\imageAtts\', 10, 3 );
如果不想在自定义程序中设置徽标,可以使用get_custom_logo 滤器

namespace StackExchange\\WordPress;
function imageAtts( string $html, int $blog_id ) : string {
  return sprintf(
    \'<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>\',
        \\esc_url( home_url( \'/\' ) ),
        \'https://example.com/logo.jpg\'     
  );
}
\\add_filter( \'get_custom_logo\', __NAMESPACE__ . \'\\getCustomLogo\', 10, 2 );
无论哪种方式,在主题的代码中,使用the_custom_logo() 显示徽标。

结束

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http