如何在 wp_head 中将备用、图标和清单链接排入队列?
Posted
技术标签:
【中文标题】如何在 wp_head 中将备用、图标和清单链接排入队列?【英文标题】:How to enqueue alternate, icon, and manifest links in wp_head? 【发布时间】:2018-11-06 06:24:53 【问题描述】:我正在尝试在我的插件的头部呈现元、图标和应用商店代码,但它被 WordPress 插件审查团队拒绝:
请使用 wp_enqueue 命令
这是我要添加的内容:
add_action('wp_head', array(&$this, 'add_meta'));
public function add_meta()
global $post;
$url = $_SERVER['HTTP_HOST'] . rtrim($_SERVER['REQUEST_URI'], '/');
// Smart App Banner for Safari and ios
echo '<meta name="apple-itunes-app" content="app-id=' . $this->getOption('iOSID') . ', app-argument=' . 'http://' . $url . '">';
// Google App Indexing
echo '<link rel="alternate" href="android-app://' . $this->getOption('AndroidID') . '/' . 'http/' . $url . '" />';
echo '<link rel="alternate" href="ios-app://' . $this->getOption('iOSID') . '/' . 'http/' . $url . '" />';
// App Icons
echo '<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">';
echo '<link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">';
echo '<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">';
echo '<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">';
echo '<link rel="manifest" href="/manifest.json">';
echo '<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">';
echo '<meta name="msapplication-TileColor" content="#da532c">';
echo '<meta name="msapplication-TileImage" content="/mstile-144x144.png">';
但是,我看不出这些特殊的link
和meta
标记可以用wp_enqueue_style
完成。从插件中执行此操作的正确“WordPress”方式是什么?
【问题讨论】:
我可能会问 WordPress 审查团队.. 你可以说,“我正在尝试做wp_site_icon()
正在做的事情,这(也)与 wp_head
挂钩。所以出了什么问题用我的代码?”...你明白了。
我不明白为什么它被拒绝了,这就是 WP 本身打印<link>
和<meta>
标签的方式......这就是你在wp_head
动作钩子中使用的所有代码吗?我已经检查了 WP 基本代码,仅此而已,没有特殊的队列...
你在为它创建一个类吗?
【参考方案1】:
这取决于您要包含的内容类型。
脚本和样式需要使用适当的 WP 函数注册和/或入队:
wp_enqueue_script()
wp_enqueue_style()
任何其他类型的内容都可以使用 wp_head 动作挂钩:
function hook_metacontent()
echo '<meta name="apple-itunes-app" content="app-id=' . $this->getOption('iOSID') . ', app-argument=' . 'http://' . $url . '">';
// Google App Indexing
echo '<link rel="alternate" href="android-app://' . $this->getOption('AndroidID') . '/' . 'http/' . $url . '" />';
echo '<link rel="alternate" href="ios-app://' . $this->getOption('iOSID') . '/' . 'http/' . $url . '" />';
// App Icons
echo '<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">';
echo '<link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">';
echo '<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">';
echo '<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">';
echo '<link rel="manifest" href="/manifest.json">';
echo '<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">';
echo '<meta name="msapplication-TileColor" content="#da532c">';
echo '<meta name="msapplication-TileImage" content="/mstile-144x144.png">';
add_action('wp_head', ‘hook_metacontent');
【讨论】:
【参考方案2】:从插件中执行此操作的正确“WordPress”方式是什么?
您正在寻找的正确的 WordPress 钩子是专门用于钩子元数据的 wp_head
,如下所示:
add_action( 'wp_head', 'add_meta' );
function add_meta()
// Post object if needed
global $post;
// Page conditional if needed
if( is_page() )
?>
<meta name="someName" content="someContent" />
<?php
注意:如果您需要删除默认挂钩,此文件将为您提供用于删除挂钩的优先级。
【讨论】:
【参考方案3】:从插件中执行此操作的正确“WordPress”方式是什么?
你已经做对了。如果 WordPress 审查团队说或说不是,那么问他们为什么——或者甚至你应该如何编码function
。 =)
不过,您可能想看看这个:https://***.com/a/8086420/9694859
【讨论】:
以上是关于如何在 wp_head 中将备用、图标和清单链接排入队列?的主要内容,如果未能解决你的问题,请参考以下文章