如果页面是在android手机上打开的,我该如何为页面回显不同的标题?
我有一个功能可以检查它是否是android:
function is_android (){
$browserInfo = php_browser_info();
if (preg_match("/Android/", $browserInfo[\'browser_name_pattern\'], $matches)) {
if ($version == \'\') :
return true;
elseif ($browserInfo[\'majorver\'] == $version ) :
return true;
else :
return false;
endif;
} else {
return false;
}
}
我可以使用以下语句:
add_action( \'init\', \'change_title_if_android\');
function change_title_if_android() {
if ( is_front_page() && is_android() ){
echo "<title> test android </title>";
}
}
但这行不通。它阻止加载我的页面。
我试着写if
模板上的语句(标记中的header.php)和我得到了相同的结果。
有什么建议吗?
Edit:
我使用了我制作的215个儿童主题。
我尝试粘贴此代码部分以发挥作用。birgire评论员建议的php:
add_filter( \'wp_title\', function( $title )
{
return
is_front_page()
&& isset( $_SERVER[\'HTTP_USER_AGENT\'] )
&& false !== stripos( $_SERVER[\'HTTP_USER_AGENT\'], \'android\' )
? \'Test Android\'
: $title;
}, 11 );
他在2012年&;2015年默认主题,这对他很有用!
但它对我不起作用,所以我尝试使用is_home
而不是is_front_page()
, 没有任何变化。
我试图删除这条线,只留下HTTPS_USER_AGENT
, 也不起作用。
我们进行了测试$_SERVER[\'HTTP_USER_AGENT\']
使用此选项:
add_action( \'template_redirect\', function()
{
if( filter_input( INPUT_GET, \'wpse_show_ua\', FILTER_SANITIZE_NUMBER_INT ) )
{
printf( \'My User Agent: %s\', $_SERVER[\'HTTP_USER_AGENT\'] );
exit;
}
} );
它成功了。我在运行时获得了正确的输出
example.tld/?wpse_show_ua=1
:
我的用户代理:Mozilla/5.0(Linux;Android 4.4.2;SM-G900F Build/KOT49H)AppleWebKit/537.36(KHTML,如Gecko)Chrome/43.0.2357.93 Mobile Safari/537.36
我们测试了if
声明并正确无误:
add_action( \'template_redirect\', function()
{
if( filter_input( INPUT_GET, \'wpse_show_ua\', FILTER_SANITIZE_NUMBER_INT ) )
{
if (
isset( $_SERVER[\'HTTP_USER_AGENT\'] )
&& false !== stripos( $_SERVER[\'HTTP_USER_AGENT\'], \'android\' )
)
echo \'is an Android!\';
else
echo \'not an Android!\';
exit;
}
} );
在手机上“是Android”,在桌面上“不是Android!”。
所以问题实际上是发送标题的新值!
运行此功能时:
add_filter( \'wp_title\', function( $title )
{
if( filter_input( INPUT_GET, \'wpse_show_ua\', FILTER_SANITIZE_NUMBER_INT ) )
{
return \'Testing 123\';
}
return $title;
}, 11 );
和进入
example.tld/?wpse_show_ua=1
阿甘,我得到了我的定期网站显示没有改变标题!
同样,这对评论者默认的212和215主题有效。
我猜这是因为安装了插件(Yoast SEO)。但我真的不知道为什么会这样。