如何在 WordPress 中使用自定义字段

已发表: 2017-12-13

在您撰写上一篇文章时,您可能已经在帖子编辑器中的“自定义字段”区域上滚动过。

这个简单而强大的 WordPress 功能可能不会被初学者注意到,但它实际上是一个功能,它无疑可以将您简单而朴素的网站转变为一个动态门户,以吸引新访问者。

让我们向您展示更多关于自定义字段以及如何在您的网站上使用它们的信息。

什么是自定义字段以及它们如何工作

什么是自定义字段? 这些小字段允许任何用户输入有关帖子的额外信息。 这称为元数据,即“关于数据的数据”,允许您在帖子中附加其他信息。 您可以在自定义字段中输入的值可以很简单,例如向帖子添加文本或数​​字、添加图像、通过字段更改样式,或者实际执行任何您想到的事情。

自定义字段

也许一切都会通过一个例子更清楚。

想象一下,您正在运行一个专门用于视频游戏的网站。 你写新闻和发布预告片,玩游戏硬件,这样你就可以谈论它,当然你在新游戏到来后写评论。 在您撰写评论并在文章中放置屏幕截图和游戏视频后,您可能希望显示有关游戏的重要信息。

与其在冗长的文本中隐藏有关游戏的最重要信息,您可能希望显示游戏的分数、链接到其网站的开发商和发行商名称、发布日期等。是的,自定义字段可以帮助您完成魔法。

如果您让作者在自定义字段中输入该信息,您可以轻松提取信息并将其显示在评论中。 您已经在评论网站上看到过信息框。 如果这样做,所有评论都可以有一个标准化的模板——这可以改善正面和背面的用户体验。

按照游戏网站的示例,您最终将拥有几个自定义字段,您的作者可以输入这些字段并显示给您的读者:

使命召唤信息

这是您的作者将在自定义字段中输入的信息,您可以在帖子中显示相同的信息。 但是如何?

显示所有自定义字段:

如果您只有一个字段,或者您想在同一位置显示所有字段,您可以使用一个简单的函数一次挂钩所有元数据:

  1. 打开single.php
  2. 找到 the_content() 函数并在它之前或之后粘贴此代码(取决于您要显示自定义字段的位置):
 <?php the_meta(); ?>
  1. 保存更改

显示特定的自定义字段:

就是这样。 这个简单的函数现在将保持挂钩,它将显示帖子中的所有自定义字段。 但是如果你想在不同的位置显示不同的字段,或者如果你只想显示一个特定的键怎么办? 然后您将使用稍微不同的方法并定义将显示的键:

  1. 打开 single.php 文件
  2. 找到内容并复制以下内容:
 <?php echo get_post_meta($post->ID, 'key', true); ?>
  1. 将“key”替换为您在帖子中使用的实际自定义字段。 例如:“出版商”
  2. 保存更改

此函数将检查循环中的每个帖子并搜索名为“Publisher”的自定义字段。 如果找到该键,则将显示其值。 您可以通过向自定义字段添加类并使用 CSS 设置类的样式来进一步自定义显示自定义字段的方式,或者您可以直接在字段值中输入 HTML。

条件自定义字段:

如果需要,您可以使用自定义字段作为条件。 让我们继续这个例子,假设有时您无法知道您正在撰写的游戏的发布日期。 如果用户没有添加任何数据,您可以将过程自动化,而不是输入自定义字段,并告诉 WordPress 将“TBA”(待宣布)写入发布日期字段:

 <?php $release_date = get_post_meta($post->ID, 
'发布日期', 真);
如果($release_date){
?>
<?php echo $release_date; ?>
<?php } else { ?>
<p>待公布。</p>
<?php } ?>

好的,我们将从这里结束。 这是使用自定义字段的最基本方法。 但是现在您已经了解了基础知识,您实际上可以用它们做任何事情。 例如,您可以展示您的心情或您正在听的歌曲。 或者,您可以显示包含特定键和/或值的帖子列表。 天空才是极限。

如何列出具有特定自定义字段的帖子

自定义字段是扩展帖子功能的好方法。 您可以让用户在自定义字段中输入一个值并使用该信息执行某些操作,而不是让用户处理代码 - 有无限的可能性。

有时,当您已经在使用特定的自定义字段时,您可能需要列出包含这些字段的帖子。

例如,如果您正在撰写游戏评论并且已经有不同的自定义字段,您可以在评论的单独信息框中显示发行商、流派、分数等,您可能只想显示来自该特定发行商的游戏、来自 FPS 的游戏类型或仅那些评分为 10 的评论

这种信息对您的访问者来说可能真的很有趣。 您可以允许他们更详细地浏览您的游戏评论,或者允许他们查看您网站上评分最高的 10 款游戏。 即使您不想发布新列表,此方法也可以帮助您进行数据挖掘——您可以仅出于研究目的列出具有特定属性的所有帖子,而不是从中创建文章。

我们认为,列出按自定义字段排序的帖子的最佳方式是创建新页面模板并在新页面上显示列表。 此方法允许您组织页面并轻松使用新页面来显示您需要的内容。 在以下几行中,我们将向您展示如何查找具有特定自定义字段和/或其值的所有帖子并将其显示在新页面上。

1. 创建自定义模板:

让我们继续游戏评论示例,我们希望显示 Bethesda Softworks 的所有游戏(有人说辐射吗?)。 首先,您需要创建并准备一个自定义模板:

  1. 创建自定义页面模板并将其命名为 bethesda-games.php
  2. 将以下代码复制并粘贴到文件中:
 <?php
/*
模板名称:贝塞斯达游戏
*/
?>
<?php get_header(); ?>
<?div class="container">
<?div class="indent">
<?php
查询帖子(数组(
'meta_key' => '发布者',
'meta_value' => '贝塞斯达'
));

if ( have_posts() ) while ( have_posts() ) : the_post();
echo '<?li>';
标题();
echo '<?/li>';
终了;

wp_reset_query(); ?>
<?/div>
<?/div>
<?php get_footer(); ?>
  1. 保存更改

该代码已准备好遍历所有自定义字段并仅查找值为“Bethesda”的“Publisher”键。 您可以将键和值更改为您想要的任何内容。 如果您想显示包含任何值的“Publisher”自定义字段的所有帖子,只需完全删除“meta_value”行。

不要忘记将模板的标题更改为您稍后会识别的内容。

2. 添加页面:

现在您的模板已准备就绪,您可以继续创建列表:

  1. 导航到页面->添加新
  2. 添加标题
  3. 在右侧,找到“页面属性”
  4. 从“模板”下拉列表中选择您的模板
  5. 发布页面

就是这样! 现在,如果您打开新页面,您可以看到所有帖子的列表,其中包含带有您选择的值的自定义字段。

现在,您必须向新页面添加一些文本、设置列表样式并找到向访问者展示的最佳方式。 我们希望这种方法能帮助您在另一个层次上对帖子进行排序,并且您会喜欢它。

使用自定义字段显示侧边栏

WordPress 2.2 版中引入了侧边栏。 从那时起,它已成为一种显示额外内容的流行方式,而且通常情况下,WordPress 主题默认会有一个,您可以在其中放置所需的任何小部件。

虽然非常有用,但您不希望侧边栏无处不在。 通常,这些栏显示在除主页之外的任何地方。 并且没有这样的选项可以轻松打开和关闭侧边栏。

所以,为什么不自己做呢。 在本文的这一部分中,我们将向您展示如何将侧边栏放入自定义字段中,并仅为您想要的帖子调用它。

1.准备模板:

  1. 打开 page.php 或 single.php 文件
  2. 找到以下代码: <?php get_sidebar(); ?>
  3. 用这个替换代码:
 <?php $sidebar = get_post_meta($post->ID, 
"侧边栏", 真);
get_sidebar($sidebar);
?>
  1. 保存更改
  2. 在侧边栏所在的位置创建自定义模板
  3. 打开 sidebar.php 文件
  4. 从 sidebar.php 复制所有内容并粘贴到您的自定义模板文件中
  5. 保存更改。

现在你必须打开一个帖子或一个页面,你可以在文本/可视化编辑器下找到“自定义字段”。 要向该帖子/页面添加侧边栏,请执行以下操作。

2. 在自定义字段中使用侧边栏:

  • 在自定义字段的名称下输入“侧边栏”
  • 键入自定义模板的名称作为字段值

就是这样。 如果您将自定义字段留空,则您的帖子将没有侧边栏,而在另一种情况下,如果您已正确完成所有操作,您的侧边栏应该会加载。

使用自定义字段更改单个帖子的页眉、页脚或侧边栏

通常,WordPress 网站只有一个页眉、页脚和侧边栏已经由您使用的主题定义。 每一个都有其功能和设计存储在单独的文件中,这些文件由主题调用,然后在需要的地方显示在网站上。 因为主题的每个部分都存储在不同的文件中,所以您可以轻松修改它们而不必担心会弄乱整个站点,并且您可以仅更改站点上的页眉、页脚或侧边栏的行为方式。

但有时,一个元素是不够的,例如,您需要更改标题。 如果您想为整个站点更改它,那么您已经准备好了 – 打开 header.php 并按照您想要的方式修改它。 但是,如果您只想在单个帖子的标题中添加广告怎么办? 或者可能只修改整个收藏中一篇文章的标题而不更改其余文章?

再一次,自定义字段将为您提供帮助。

1. 准备文件:

在我们使用自定义字段更改页眉、页脚或侧边栏之前,您应该准备一个文件。 假设您想更改一两个帖子的标题,并且您创建了一个名为 header-header2.php 的新文件,您在其中更改了设计或在帖子中插入了特定广告。 在您可以继续创建自定义字段之前,请确保该文件已正确编码并在您的站点上正常工作。 一旦文件准备就绪,您就可以继续。

命名文件时要小心——如果你想改变头文件,你的新头文件应该是这样的: header-newname.php

2. 替换代码:

  1. 打开 single.php 文件
  2. 搜索 get_header(); 代码的一部分,通常位于 single.php 页面的最顶部
  3. 将函数替换为以下内容:
 全局 $wp_query;
$postid = $wp_query->post->ID;
$header = get_post_meta($postid, "header", true);
如果 (!empty($header)) {
get_header($header);
} 别的 {
get_header();
}
wp_reset_query();
  1. 保存更改

使用此代码,您告诉 WordPress 检查每个帖子中的“标题”自定义字段。 如果找到具有该名称的自定义字段,WordPress 将采用其值并将文件名仅用作该帖子的标题。

3. 通过自定义字段更改标题:

如果您在主题中上传了 header-header2.php,您现在可以在自定义字段中调用它:

  1. 打开要更改标题的帖子
  2. 向下滚动并导航到自定义字段
  3. 输入一个新字段并将其命名为“header”
  4. 在字段值中输入“header2.php”
  5. 更新或发布帖子

如果您的header-header2.php文件中没有任何错误,新的标题应该出现在您进行更改的帖子的顶部。 尽管如此,所有其他帖子都将加载由主题定义的标准头文件。

您可能已经注意到,您只需要在“header-”部分之后输入新头文件的文件名。 因此,正确命名新头文件并在自定义字段中使用的实际名称之前添加“header-”部分非常重要

当然,通过更改代码的 get_sidebar()get_footer()部分,侧边栏或页脚文件也是如此

使用 ACF 主题代码更轻松地实现高级自定义字段

自定义字段几乎是每个 WordPress 主题不可避免的部分。 这些字段允许每个人包含关于帖子的额外信息,但不幸的是,这个标准的 WP 功能非常原始。 初学者需要一些时间来习惯使用自定义字段,而开发人员在围绕它们进行编码时必须花费大量额外时间。

这就是高级自定义字段 (ACF) 插件在全球 WordPress 用户中如此受欢迎的原因。 这个免费插件目前的活跃安装量超过 100 万,我们不明白为什么这个数字会开始下降。 ACF 允许您通过可视化编辑器创建功能强大、专业且直观的自定义字段

尽管非常流行,但如果您计划在主题中实现这些字段,ACF 仍然需要编码知识和大量时间。 是的,创建字段组很容易,但显示这些字段并不是小菜一碟。 这就是 ACF 主题代码介入以拯救开发人员的地方。

ACF主题代码

价格:免费

WordPress 的 ACF 主题代码

这个很棒的插件是两个开发人员的产品,他们决定是时候停止一遍又一遍地重复编写相同的代码浪费时间了。 在开发主题或修改现有主题时,高级自定义字段要求开发人员在主题内的正确位置实现正确的代码。 由于没有更简单的方法,开发人员必须记住代码片段和 API 的所有功能才能完成工作。

创作者之一亚伦·拉特利 (Aaron Rutley) 在他的博客中解释说:

“在 WordPress 主题中实现字段时,我可能会忘记字段名称,它是 'profile_image' 还是 'profile_photo'? 我也可能会忘记我是如何设置要返回的字段的,它是 ID、URL 还是数组? 我发现自己不断编辑现场组以找出答案。”

这就是 ACF 主题代码可以帮助开发人员的地方。 安装这个现已下载超过 4,000 次的免费插件后,您可以节省处理代码的时间。 每当您在高级自定义字段中发布、编辑或更新字段组时,这个惊人的插件将自动生成将字段实现到任何主题所需的代码。

您会在页面底部找到此代码。 在每个代码段旁边,您会找到一个剪贴板图标,可以轻松复制代码。 现在您无需记住任何内容,并且在使用自定义字段时可以放松。

尽管该插件已经是任何开发人员的必备品,但 Aaron 表示他们已经计划扩展 ACF 主题代码:

“我们计划在未来增加对更流行的第三方领域的支持。 我们还计划让开发人员更好地控制生成的代码。”

虽然该插件与 ACF 的免费版本配对时是免费的,但如果您使用高级自定义字段的扩展版本,则需要 PRO 版本。 ACF Theme Code Pro 为所有其他 ACF Pro 字段类型(如克隆、图库、转发器和灵活内容字段)生成代码。

使用自定义字段显示您的心情或歌曲

写博客应该很有趣。 即使您正在撰写有关严肃主题的文章,您的博客仍然可以包含一两件事,这对于普通读者来说会更有趣。 它可以是任何东西——作者的一个小笔记、一张有趣的图片,或者你可以添加你在写文章时的心情。 也许您甚至想添加您正在听的歌曲名称。

在这一部分,我们将向您展示如何轻松实现在帖子中显示心情/歌曲的功能。 您无需安装任何额外的插件,而且该功能不会占用您太多的空间。 这是一行简单的文本,可以自动添加到帖子的顶部或底部。

1.让我们添加一个“情绪特征”:

  1. 打开 single.php 文件
  2. 将以下代码复制并粘贴到您要显示心情的位置:
 $customField = get_post_custom_values("心情");
如果(isset($customField[0])){
echo "<span class='my_mood'>" 。 “情绪: ” 
.$customField[0] 。 "</span>";
}
  1. 保存更改
自定义字段心情

既然您已经为您的心情准备了 WordPress,您就可以在任何您想要的帖子中展示它们了。 默认情况下,WordPress 不会显示您的心情,并且在您决定显示之前不会加载任何默认心情。 如果您想添加歌曲,只需将第一行代码的“mood”更改为“song”,您也可以更改第三行的类名。

2. 将您的心情/歌曲添加到帖子中:

要输入心情或歌曲,您需要将其写在自定义字段中:

  1. 打开您想为其写下心情的帖子
  2. 向下滚动,直到看到“自定义字段”。

如果帖子内容下方没有显示自定义字段,请单击编辑器屏幕顶部的“屏幕选项”,然后选中“自定义字段”旁边的复选框。

  1. 如果您决定使用它,请在名称字段或“歌曲”中写下“心情”
  2. 在“值”字段中写下您想要的任何内容 - 这将是您帖子中显示的心情/歌曲
  3. 单击“添加自定义字段”按钮
  4. 发布您的帖子

3. 风格化:

正如您仅从三行代码中看到的那样,这是添加新自定义字段的最简单形式。 如果你想用一些 CSS 来设计你的心情,你可以看到代码已经在你的文本中添加了“my_mood”类。 要修改样式,请执行以下操作:

  1. 打开 style.css 文件
  2. 复制并粘贴代码:
 。我的心情 {
颜色:蓝色;
}
  1. 添加您喜欢的任何 CSS 样式
  2. 保存更改。

希望这足以让您开始为您自己的博客定制“情绪/歌曲功能”,我们​​希望“蓝色”不会成为您经常处理的值。 如果您不想发布您的心情,只需不要在“心情”自定义字段中写任何内容。

加起来

如果其他人为您创建了自定义字段(例如主题或插件开发人员),则使用它来改进您的博客非常容易。 但我们希望本文能帮助您自行自定义字段。

我们向您展示了通过对代码进行简单修改,您可以创建和管理您自己的自定义字段,这将帮助您生成一个独特的博客。 您将能够提取所需的信息,并简化编写和生成内容的过程。 您如何看待 WordPress 中的自定义字段?