如果您正在进行多站点安装,您会将favicon放在哪里,让浏览器自动识别它(并且不会用链接标记污损代码),因为根本没有真正的根目录?
提前感谢您在这方面的帮助
如果您正在进行多站点安装,您会将favicon放在哪里,让浏览器自动识别它(并且不会用链接标记污损代码),因为根本没有真正的根目录?
提前感谢您在这方面的帮助
我会使用重写来映射/favicon.ico
到/icons/example.com.ico
:
RewriteCond %{REQUEST_URI} ^/favicon\\.ico
RewriteCond %{SERVER_NAME} ^(www\\.)?([a-z0-9]+)
RewriteCond %{DOCUMENT_ROOT}/icons/%2.ico -f
RewriteRule . /icons/%2.ico [L]
注意#2行的regex取决于您的设置-每个网站是自己的域,还是主域的子域/子目录?我还将在根目录中放置一个默认favicon,如果根目录中不存在favicon,则会拉取该favicon/icons
对于当前站点。
另一种方法是在<head>
.
唯一需要注意的是,以下内容不适用于子目录安装,仅适用于子域<不知怎的get_current_blog_id
is仅返回ID1
在何时define(\'SUBDOMAIN_INSTALL\', false);
.
<?php
/**
* Plugin Name: Multisite Favicons
* Description: Favicons should be stored in http://example.com/icons/domain_name.ico | If the site is subsite.example.com, the favicon should be subsite.ico
**/
add_filter( \'wp_head\', \'multisite_favicons_wpse_38903\' );
function multisite_favicons_wpse_38903()
{
// This function returns true if not Multisite
if( is_main_site() )
return;
global $current_site;
$details = get_blog_details( get_current_blog_id() );
$blogname =
( is_subdomain_install() )
? str_replace( \'.\' . $current_site->domain, \'\', $details->domain )
: $details->path;
printf(
"<link rel=\'shortcut icon\' href=\'%s/icons/%s.ico\' type=\'image/x-icon\'/>\\n",
site_url(),
$blogname
);
}
有趣的博客帖子:Everything You Ever Wanted to Know about Favicons我这样问是因为我无法从我在第二个博客上创建的插件中找到选项。将此插件添加到主站点并显示选项。我很困惑,因为在wp_options 桌子blog_id 我希望那里会有不止一个值。