65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用 Wordpress 的 Token Manager 插件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.89/5 (9投票s)

2012年8月28日

CPOL

8分钟阅读

viewsIcon

37980

一篇包含详细代码示例的文章,介绍如何使用 Token Manager 插件创建 token 并将其分配给页面,以便在 Wordpress 中显示。

 

Token Manager 文章[^]

引言

在我上一篇文章中,我介绍了一个名为 Token Manager 的插件。它是一个 Wordpress 插件,用于管理 HTMLPHPCSSJavaScript 作为 token,这些 token 具有极高的模块化和易用性。它允许您将代码打包成可重用的版本化组件,这些组件可以通过 token 名称和/或参数在主题、页面、文章、评论、小工具中使用。这种分离使您可以保持代码整洁并访问 Wordpress API,而无需创建难以维护的“意大利面条代码”。

下面,我将讨论如何创建一个可用的 token,将其分配给一个 Wordpress 页面并对其进行处理顺序的设置。我还会向您介绍该插件的通用功能和隐藏功能,您可能熟悉也可能不熟悉。

如果您需要安装 Token Manager 的说明,请访问上一篇文章以获取详细描述。对于简单快速的安装,您可以从 Wordpress 插件管理器下载并立即激活它。

创建 Token 类型

现在您对插件的用途有了简要的了解,让我们引入一些代码来创建我们的第一个简单 token。在创建第一个 token 之前,请确保您创建了 token 类型。访问“添加新类型”页面并创建一些类型。

什么是 token 类型? 

Token 类型是用于分隔您的 token 并更容易理解 token 用途的类别。您可以随意命名,所以请尽情发挥创意。一些 token 类型的示例。

例如:pagecomponentcontroltextmodulewidgetthird partytestdatafeedservice等等

创建 token 类型后,它们将出现在“Token 类型”页面下,您可以在那里管理它们。添加新 token 时,它们还将出现在下拉列表中以供分配。

 

创建您的第一个 Token

现在让我们访问“添加新 Token”页面。首先为您的 token 命名。请保持 token 名称简单易记。从您之前在 token 类型下创建的下拉列表中分配 token 类型。我包含了一个描述框,允许您描述 token 的用途,用于悬停帮助菜单。这对于团队开发来说是一项很棒的功能,可以为其他开发人员提供对您代码的快速了解。最后要做的是在 token 值中添加一些实际代码。“Token 值”有四个选项卡:HTMLPHPCSSJS。PHP 也可以在 HTML、CSS 和 JS 中内联使用!它将在运行时进行处理并注入到相应的选项卡中。如果您想在选项卡中使用 PHP,只需添加 <?php //您的代码 ?>,除了实际的“PHP 选项卡”外,在该选项卡中不需要。这使得代码更加动态。我将在本文后面向您展示示例。 

现在,让我们创建一个简单的版权 token。

Token 名称: copyright
Token 类型: text
Token 描述:为 Wordpress 网页创建动态版权 span 元素。

Token 值: HTML 选项卡
<span id="copyright" onclick="copyright_onclick();">
  Copyright &copy; 1999 - 
  <?php echo display_current_year(); ?> 
  YourWebsite, All Rights Reserved.
</span>
Token 值: PHP 选项卡
function display_current_year()
{
  return date('Y');
}
Token 值: CSS 选项卡
#copyright
{
  color: blue;
  font-size: 12px;
} 
Token 值: JS 选项卡
function copyright_onclick()
{
  alert('The copyright was clicked!');
}

完成后,单击“添加 Token”按钮。您的 token 将添加到“Tokens”页面进行管理。

 

请注意此页面上用于管理 token 的不同工具图标。从左到右。

  1. 上移和下移箭头 - 用于按特定顺序与其他 token 一起处理 token。
  2. 编辑 Token - 允许您编辑 token 并创建更新版本。 
  3. 描述 - 悬停时显示 token 的描述。 
  4. 统计信息 - 悬停时显示 token 的统计信息。
  5. 作者 - 显示创建 token 的 Wordpress 作者。 
  6. Token 页面分配 - 允许您将 token 分配到特定 Wordpress 页面或页面。
  7. Token ID - token 的唯一 ID。
  8. Token 名称 - token 的唯一名称。请注意您 token 周围的括号“{copyright}”。
  9. Token 类型 - token 的 token 类型。
  10. 版本历史 - 悬停时允许您查看 token 所在的版本。 
  11. 删除 Token - 允许您从管理器中删除 token。  

将 Token 分配给 Wordpress 页面

为了让我们的新 token 显示在我们的网页上,我们必须使用 token 页面分配工具将其分配。在“Tokens”页面上,单击看起来像页面的图标。将出现一个弹出框。输入 Wordpress 页面名称或 ID 进行搜索,然后单击搜索按钮。找到页面后,单击它进行分配,然后单击箭头按钮将其移动到已附加页面。

搜索中还有两个隐藏的页面分配
  1. 首页 - 将 token 分配到首页。
  2. 所有页面 - 将 token 分配到所有页面。使用此分配时请小心,当创建许多 token 时,资源消耗会很高。 

由于我们的“copyright” token 很可能会显示在每个页面上,因此将其分配给“所有页面”。要使我们的 token 显示,最后也是最重要的一步是,在 Wordpress 页面编辑器中使用“{copyright}”添加到我们的页面,或将其添加到 Wordpress 主题文件中。文本将在运行时被替换为已分配页面的已处理 token 值。 

 

导航到实际页面,应该会显示出来。它会显示一个蓝色的 12px 版权消息,带有动态的当前年份,如果您单击 span,还会显示一个 onclick JavaScript 消息。恭喜您创建了您的第一个 token!

Token 处理顺序

在本节中,我将描述该插件的 token 处理顺序。Token 按您在“Tokens”页面上指定的顺序进行处理。通过使用上移和下移箭头,您可以更改 token 的处理顺序。Token 处理顺序是从最低到最高。这允许您在其他 token 中使用 token 名称来替换路径(用于链接、控件、工具栏、小工具等)。每个单独的 token 都独立处理。这允许 token 传入不同的 参数 并获得不同的结果。如果参数相同,则 token 将被缓存并替换为之前处理过的代码。Token 按以下顺序处理。 

  1. 页面初始化
  2. Wordpress 初始化
  3. 全局 Token 初始化
  4. Token Manager 页面缓冲初始化
  5. Wordpress 第三方插件初始化
  6. Token 参数初始化
  7. 按处理 ID 升序排序 Token
  8. Token 参数注入
  9. Token 值 PHP、HTML、CSS 和 JS 初始化
  10. Token 缓存到键数组
  11. Token 替换缓冲数据
  12. 全局 Token 替换缓冲数据
  13. 输出 Wordpress 页面

全局 Token 

Token Manager 中内置了几个全局 token。它们主要用于路径、文件名、URL 等。Globals 通常以“REQUEST_”开头。下面是 globals 列表以及它们包含内容的描述。 

  • REQUEST_HASERRORS - 一个布尔值,表示 token 是否处理出错。
  • REQUEST_HOST - 域的 URL 主机。
  • REQUEST_SCHEME - URL 的方案,HTTP 或 HTTPS。
  • REQUEST_SITEURL - 方案和主机组合,用于准确的 URL。
  • REQUEST_FULLURL - 完整的 URL,未进行任何解析。
  • REQUEST_QUERY - URL 的查询字符串。
  • REQUEST_URLPATH - URL 的目录或文件路径。
  • REQUEST_FULLFILENAME - URL 文件名和文件扩展名组合。
  • REQUEST_FILENAME - URL 文件名。
  • REQUEST_FILEXT - URL 文件扩展名。
  • REQUEST_TEMPLATESPATH - Wordpress 模板的绝对文件路径。
  • REQUEST_TEMPLATESURL - Wordpress 模板的相对 URL 路径。
  • REQUEST_SITEID - Wordpress 多站点 ID。
  • REQUEST_BLOGID - Wordpress 多站点博客 ID。
  • REQUEST_PAGEID - Wordpress 页面 ID。 
  • REQUEST_ISFRONTPAGE - 一个布尔值,表示该页面是否为首页。  

Token 参数

可选地,token 可以从页面向 token 值传递参数以进行动态处理。传递参数的格式非常简单。{tokenname,"param1",param2}。该 token 支持字符串和整数参数。可以通过 PHP 访问参数,通过 $GLOBALS["ARGS"][0]。更改索引 ID 以访问其他指定的参数。

访问 Wordpress API

在本节中,我将向您展示如何从您的 PHP token 值访问 Wordpress API,以创建一些有用的东西。让我们开始创建一个新的 token。

Token 名称: randomlatestposts
Token 类型: control
Token 描述:抓取最新的帖子 ID 并将它们添加到数组中,然后对 ID 进行洗牌,并随机拉取指定数量。两个参数:listsize 和 returnlimit。

Token 值: HTML 选项卡
<?php echo $randomlatestposts->get($GLOBALS["ARGS"][0], $GLOBALS["ARGS"][1]); ?> 
Token 值: PHP 选项卡
class randomlatestposts
{
 public function get($_listsize, $_returnlimit)
 {
   global $wpdb;
   
   $posts = "SELECT id from $wpdb->posts " .
            "WHERE post_type='post' AND post_status='publish' " .
            "ORDER BY post_date DESC LIMIT $_listsize";
   $postarray = array();
   $postresult = mysql_query($posts) or die(mysql_error());

   while ($row = mysql_fetch_array($postresult)) { $postarray[] = $row[0]; }

   shuffle($postarray);
   array_splice($postarray, $_returnlimit);

   $ids = implode(',', $postarray);

   $args = array(
	'showposts'=> $_returnlimit,
	'post__in' => explode(',', $ids),
	'orderby' => 'rand');
   
   query_posts($args);

   $html = '';
   while (have_posts())
   {
     the_post(); 
     $html .= '<li style="margin-bottom: 5px;">' .
              '<a href="' . get_permalink() . '" rel="bookmark">' . 
              get_the_title() . '</a></li>';
   }
   
   return '<ol>' . $html . '</ol>';
 }
}

$randomlatestposts = new randomlatestposts(); 

在您的主题或页面中添加 token 代码 '{randomlatestposts, 300, 5}' 并进行分配。代码将从往回追溯的 300 篇最新帖子中提取,随机化 ID,然后提取 5 篇显示在您的页面上。在 PHP token 值中,您会注意到我使用了 'global $wpdb'。这使我可以直接访问 Wordpress 数据库。我还包含了一些非直接的 Wordpress API 函数调用。我在同一段代码中同时为您提供了两个示例,以展示您的 token 可以有多么多样化。

 

Token 历史、版本控制、备份和恢复

我集成了 Scrum 流程来管理 Token 的版本。它仅在 Token Manager 的专业版中可用。尽管如此,标准免费版也包含了一些代码片段,以防止您的代码被覆盖。每次更新 token 时,完整的 token 将被移到一个单独的表中,版本号会增加。如果您想访问 token 版本,在标准版中,您需要直接从数据库访问。

结论 

希望您喜欢我关于“如何使用 Wordpress 的 Token Manager 插件”的最新文章。祝您在构建更具弹性、更易于理解的 Wordpress 网站时玩得开心。请在下方发布任何问题或疑虑。我会尽量及时回复。

© . All rights reserved.