How to serve a amp template

时间:2017-08-28 作者:aryan

我正在将当前的主题转换为AMP主题,但这需要时间来创建,因为我必须学习如何创建AMP主题

但在此之前,我只想提供一个模板,即单一模板。php作为AMP。

我只是想从专家那里确认,如果我检测到用户请求,如果它来自移动设备,那么服务器会使用不同的html(AMP-html)。。

Is it the okay way ??.. Will google consider it as AMP ??

我计划使用wp\\u is\\u mobile()来检测用户请求或以下代码

函数w3\\u device(){$tablet\\u browser=0;$mobile\\u browser=0;

if (preg_match(\'/(tablet|ipad|playbook)|(android(?!.*(mobi|opera mini)))/i\', strtolower($_SERVER[\'HTTP_USER_AGENT\']))) {
    $tablet_browser++;
}

if (preg_match(\'/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile)/i\', strtolower($_SERVER[\'HTTP_USER_AGENT\']))) {
    $mobile_browser++;
}

if ((strpos(strtolower($_SERVER[\'HTTP_ACCEPT\']),\'application/vnd.wap.xhtml+xml\') > 0) or ((isset($_SERVER[\'HTTP_X_WAP_PROFILE\']) or isset($_SERVER[\'HTTP_PROFILE\'])))) {
    $mobile_browser++;
}

$mobile_ua = strtolower(substr($_SERVER[\'HTTP_USER_AGENT\'], 0, 4));
$mobile_agents = array(
    \'w3c \',\'acs-\',\'alav\',\'alca\',\'amoi\',\'audi\',\'avan\',\'benq\',\'bird\',\'blac\',
    \'blaz\',\'brew\',\'cell\',\'cldc\',\'cmd-\',\'dang\',\'doco\',\'eric\',\'hipt\',\'inno\',
    \'ipaq\',\'java\',\'jigs\',\'kddi\',\'keji\',\'leno\',\'lg-c\',\'lg-d\',\'lg-g\',\'lge-\',
    \'maui\',\'maxo\',\'midp\',\'mits\',\'mmef\',\'mobi\',\'mot-\',\'moto\',\'mwbp\',\'nec-\',
    \'newt\',\'noki\',\'palm\',\'pana\',\'pant\',\'phil\',\'play\',\'port\',\'prox\',
    \'qwap\',\'sage\',\'sams\',\'sany\',\'sch-\',\'sec-\',\'send\',\'seri\',\'sgh-\',\'shar\',
    \'sie-\',\'siem\',\'smal\',\'smar\',\'sony\',\'sph-\',\'symb\',\'t-mo\',\'teli\',\'tim-\',
    \'tosh\',\'tsm-\',\'upg1\',\'upsi\',\'vk-v\',\'voda\',\'wap-\',\'wapa\',\'wapi\',\'wapp\',
    \'wapr\',\'webc\',\'winw\',\'winw\',\'xda \',\'xda-\');

if (in_array($mobile_ua,$mobile_agents)) {
    $mobile_browser++;
}

if (strpos(strtolower($_SERVER[\'HTTP_USER_AGENT\']),\'opera mini\') > 0) {
    $mobile_browser++;
    //Check for tablets on opera mini alternative headers
    $stock_ua = strtolower(isset($_SERVER[\'HTTP_X_OPERAMINI_PHONE_UA\'])?$_SERVER[\'HTTP_X_OPERAMINI_PHONE_UA\']:(isset($_SERVER[\'HTTP_DEVICE_STOCK_UA\'])?$_SERVER[\'HTTP_DEVICE_STOCK_UA\']:\'\'));
    if (preg_match(\'/(tablet|ipad|playbook)|(android(?!.*mobile))/i\', $stock_ua)) {
      $tablet_browser++;
    }
}

$device = array($mobile_browser,$tablet_browser);
return $device;
}

提前感谢大家

1 个回复
SO网友:deflime

我认为您需要再看看AMP文档。你只需在文章的标题中包含文章AMP版本的链接。

<link rel="amphtml" href="http://www.example.com/post-slug/?amp" />

谷歌确认你的帖子有AMP版本后,它会自动为你提供AMP版本。

此外,这是我过去用来帮助验证AMP标记的一个很好的工具:https://validator.ampproject.org

结束

相关推荐

Multiple single templates?

假设我有一个名为“事件”的自定义帖子类型,它有几个用于图像、文档等的自定义元框。。是否可能有两个不同的单一模板?例如:我有一个列出所有事件的页面,如果我单击一个事件,单一视图将显示我在event single中输入的所有元信息。php模板。现在,我想有一个不同的页面,再次列出所有事件,但如果我单击查看单个事件,则会使用不同的模板,以便显示与事件相关的其他元数据。或更好:page-events.php lists all events -> click on event -> shows sin