跳到主要内容

自定义字段是一种便捷的WordPress功能,可让您向WordPress帖子和页面添加各种其他数据/信息。

许多流行的WordPress插件和主题都使用自定义字段来存储重要数据。您还可以使用自定义字段存储自己的数据,然后在您的网站上使用它。

在本文中,我们将向您展示如何使用WordPress自定义字段以及一些提示,技巧和技巧。

由于这是一篇冗长的文章,因此我们添加了目录,以简化导航。

  • 什么是WordPress自定义字段?
  • 在WordPress中添加自定义字段
  • 在WordPress主题中显示自定义字段
  • 在帖子编辑屏幕的下拉菜单中找不到自定义字段
  • 为自定义字段创建用户界面
  • 使用高级自定义字段添加自定义字段
  • 使用条件语句隐藏空的自定义字段
  • 向自定义字段添加多个值
  • 显示带有特定自定义键的帖子
  • 使用自定义字段添加来宾作者姓名
  • 使用自定义字段显示文章的撰稿人
  • 在WordPress循环外显示自定义字段
  • 使用自定义字段显示自定义页眉,页脚,侧边栏
  • 使用自定义字段处理RSS feed内容
  • 使用自定义字段处理RSS feed标题
  • 使用自定义字段设置帖子的过期日期

什么是WordPress自定义字段?

WordPress自定义字段是元数据,用于添加与您正在编辑的帖子或页面相关的其他信息。

默认情况下,当您编写新的帖子,页面或任何内容类型时,WordPress会将其保存到两个不同的区域。

第一部分是使用帖子编辑器添加的内容主体。

第二部分是有关该特定内容的信息。例如,标题,作者,日期,时间等。帖子的此信息位称为元数据。

WordPress自动将所有必需的元数据添加到您创建的每个帖子或页面中。

您还可以使用自定义字段创建和存储自己的元数据。

默认情况下,自定义字段选项在帖子编辑屏幕上隐藏。要查看它,您需要单击屏幕右上角的三点菜单,然后从菜单中选择“选项”。

这将弹出一个弹出窗口,您需要在其中检查“高级面板”下的“自定义字段”选项。之后,点击“启用并重新加载”按钮以重新加载帖子编辑器。

帖子编辑器将重新加载,您将能够看到内容编辑器下方的“自定义字段”面板。

自定义字段可用于添加与帖子,页面或任何内容类型有关的任何信息。该元信息可以显示在您的主题中。

Wordpress自定义字段101:提示,技巧和技巧
WordPress自定义字段101:提示,技巧和技巧

但是,为此,您将需要编辑WordPress主题文件。

这就是为什么向熟悉主题文件编辑的用户推荐本教程的原因。对于希望学习如何在自己的主题或插件中正确使用自定义字段的有抱负的WordPress开发人员,它也很有帮助。

话虽如此,让我们看一下如何在WordPress中添加和使用自定义字段。

在WordPress中添加自定义字段

首先,您需要编辑要在其中添加自定义字段的帖子或页面,然后转到“自定义字段”元框。

接下来,您需要为自定义字段提供一个名称,然后输入其值。单击添加自定义字段按钮将其保存。

该字段将被存储并显示在自定义字段元框中,如下所示:

您可以随时编辑此自定义字段,然后单击更新按钮以保存更改。您也可以根据需要将其删除。

现在,您可以保存您的帖子以存储您的自定义字段设置。

在WordPress主题中显示自定义字段

要在网站上显示自定义字段,您将需要编辑WordPress主题文件。如果您以前没有做过,请查看我们的指南,了解如何在WordPress中复制和粘贴代码。

首先,您需要找到需要编辑以显示自定义字段的主题文件。理想情况下,您希望将其显示在单个帖子页面上。您将需要编辑single.php或content-single.php文件。

您将需要在WordPress循环内输入自定义字段代码。查找如下所示的行:

<?php while( have_posts() ) : the_post(); ?>

您要确保在以下行之前添加代码:

<?php endwhile; // end of the loop. ?>

现在,您需要将此代码添加到主题文件中:

<?php echoget_post_meta($post->ID, 'key', true); ?>

不要忘了用您的自定义字段名称替换键。例如,我们在演示主题中使用了以下代码:

<p>Today's Mood: <?php echo get_post_meta($post->ID, 'Mood', true); ?></p>

现在,您可以保存所做的更改,并访问添加了自定义字段的帖子,以查看其作用。

现在,您也可以在所有其他WordPress帖子中使用此自定义字段。

只需创建一个新帖子或编辑一个现有的帖子。转到自定义字段元框,然后从下拉菜单中选择您的自定义字段,然后输入其值。

单击“添加自定义字段”按钮以保存您的更改,然后发布或更新您的帖子。

在帖子编辑屏幕上的下拉菜单中找不到自定义字段

默认情况下,WordPress仅以这种形式加载30个自定义字段。

如果您正在使用已经使用了自定义字段的WordPress主题和插件,那么这些主题和插件将首先出现在下拉菜单中,并且您将看不到新创建的自定义字段。

要解决此问题,您需要将以下代码添加到主题的functions.php文件或特定于站点的插件中。

add_filter( 'postmeta_form_limit', 'meta_limit_increase');functionmeta_limit_increase( $limit) {    return50;}

上面的代码会将限制更改为50。如果仍然看不到自定义字段,请尝试进一步增加该限制。

为自定义字段创建用户界面

如您所见,添加自定义字段后,您每次撰写帖子时都必须选择该字段并输入其值。

如果您有许多自定义字段或多个用户在您的网站上书写,那么这不是理想的解决方案。

如果您可以创建一个用户界面,用户可以在其中填写表格以向您的自定义字段添加值,那不是很好吗?

这就是许多流行的WordPress插件已经做的事情。例如,流行的All in One SEO插件中的SEO标题和元描述框是一个自定义元框:

最简单的方法是使用“ 高级自定义字段”插件。

使用高级自定义字段添加自定义字段

您需要做的第一件事是安装并激活Advanced Custom Fields插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

激活后,您需要访问“ 自定义字段»字段组”页面,然后单击添加新按钮。

字段组就像一组自定义字段的容器。这使您可以添加多个自定义字段面板。

现在,您需要为字段组提供标题,然后单击“添加字段”按钮。

现在,您可以为自定义字段提供一个名称,然后选择一个字段类型。高级自定义字段使您可以创建各种字段,包括文本,图像上载,数字,下拉列表,复选框等。

向下滚动,您将看到该特定字段的其他选项。您可以将它们更改为自己的要求。

您可以根据需要将多个字段添加到字段组中。完成后,单击“发布”按钮以保存更改。

现在,您可以编辑帖子或创建一个新帖子,您将在内容编辑器下方看到一个用于自定义字段的新面板。

有关详细的分步说明,请参阅有关如何在WordPress帖子和帖子类型中添加自定义元框的指南。

使用条件语句隐藏空的自定义字段

到目前为止,我们已经介绍了如何创建自定义字段并将其显示在您的主题中。

现在让我们看看如何在显示自定义字段之前检查它是否为空。为此,我们将修改代码以首先检查该字段中是否包含数据。

<?php
$mood= get_post_meta($post->ID, 'Mood', true);
if($mood) { ?>
<p>Today's Mood: <? echo$mood; ?></p>
<?php
} else{ // do nothing; }
?>

不要忘记用您自己的自定义字段名称替换Mood。

将多个值添加到自定义字段

自定义字段可以再次在同一帖子中重复使用以添加多个值。您只需要再次选择它并添加另一个值即可。

但是,我们在以上示例中使用的代码将只能显示单个值。

要显示自定义字段的所有值,我们需要修改代码并使其返回数组中的数据。您将需要在主题文件中添加以下代码:

<?php $mood= get_post_meta($post->ID, 'Mood', false);if( count( $mood) != 0 ) { ?><p>Today's Mood:</p><ul><?php foreach($moodas$mood) {            echo'<li>'.$mood.'</li>';            }            ?></ul><?php } else{ // do nothing; }?>

不要忘记用您自己的自定义字段名称替换Mood。

在此示例中,您会注意到我们已将get_post_meta函数的最后一个参数更改为false。此参数定义函数是否应返回单个值。将其设置为false允许它以数组形式返回数据,然后将其foreach循环显示。

显示具有特定自定义键的帖子

WordPress允许您显示带有自定义键及其值的帖子。例如,如果您试图创建一个自定义存档页面以显示具有特定自定义键的所有帖子,则可以使用WP_Query类查询与那些字段匹配的帖子。

您可以使用以下代码作为起点。

$args= array(    'meta_key'   => 'Mood',    'meta_value'=> 'Happy');$the_query= newWP_Query( $args);
<?php // the query$the_query= newWP_Query( $args); ?>
<?php if( $the_query->have_posts() ) : ?>
    <!-- the loop -->    <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>        <h2><?php the_title(); ?></h2>        <?php the_content(); ?>
    <?php endwhile; ?>    <!-- endof the loop -->
    <!-- pagination here -->
    <?php wp_reset_postdata(); ?>
<?php else: ?>    <p><?php _e( 'Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>

不要忘记用自己的值替换meta_keymeta_value参数。

使用自定义字段添加来宾作者姓名

您要添加访客帖子,但不想添加新的用户个人资料只是为了添加单个帖子吗?一种简单的方法是将来宾作者姓名添加为自定义字段。

首先,您需要在主题的functions.php文件或特定于站点的插件中添加以下代码。

add_filter( 'the_author', 'guest_author_name');add_filter( 'get_the_author_display_name', 'guest_author_name');functionguest_author_name( $name) {global$post;$author= get_post_meta( $post->ID, 'guest-author', true );if( $author)$name= $author;return$name;}

此代码将功能挂钩到WordPress中the_author并进行get_the_author_display_name 过滤。

该函数首先检查来宾作者姓名。如果存在,则将其名称替换为来宾作者名称。

现在,您将需要编辑要显示来宾作者姓名的帖子。转到自定义字段元框,然后添加您的来宾作者姓名。

有关详细信息,请参阅有关如何使用WordPress中的自定义字段重写来宾作者姓名的文章。

使用自定义字段显示文章的撰稿人

在许多流行的博客和新闻网站上,多位作者共同撰写了一篇文章。但是,WordPress仅允许将单个作者与帖子关联。

解决此问题的一种方法是使用Co-Authors Plus插件。要了解更多信息,请参阅有关如何在WordPress帖子上添加多个作者的指南。

另一种方法是通过将贡献者添加为自定义字段。

首先,您需要编辑要显示共同作者或贡献者的帖子。向下滚动到“自定义字段”元框,然后添加作者姓名作为共同作者自定义字段。

现在,将此代码添加到您要显示共同作者的主题文件中。

<?php
$coauthors= get_post_meta($post->ID, 'co-author', false);if( count( $coauthors) != 0 ) { ?><ul class="coauthors"><li>Contributors</li><?php foreach($coauthorsas$coauthors) { ?>           <?php echo'<li>'.$coauthors.'</li>';            }            ?></ul><?php } else{ // do nothing; }?>

要显示用逗号分隔的作者姓名,可以添加以下自定义CSS。

.coauthors ul { display:inline;}.coauthors li { display:inline;list-style:none;}.coauthors li:after { content:","}.coauthors li:last-child:after {    content: "";}.coauthors li:first-child:after {    content: ":";}

这就是在我们的演示站点上的样子。

在WordPress循环外显示自定义字段

到目前为止,我们已经向您展示了在WordPress循环内显示自定义字段的所有示例。如果需要在循环外显示它们怎么办?例如,在单个帖子的边栏中。

要在WordPress循环外显示自定义字段,请添加以下代码:

<?phpglobal$wp_query;$postid= $wp_query->post->ID;echoget_post_meta($postid, 'key', true);wp_reset_query();?>

不要忘记用您的自定义字段名称替换密钥。

使用自定义字段显示自定义页眉,页脚,侧边栏

通常,大多数WordPress主题在所有页面上都使用相同的页眉,页脚和侧边栏。有多种方法可以显示网站上不同页面的不同侧边栏,页眉或页脚。请参阅我们的指南,了解如何为每个WordPress帖子或页面显示不同的侧边栏。

一种方法是使用自定义字段。编辑要在其中显示其他侧边栏的帖子或页面,然后将侧边栏添加为自定义字段。

现在,您需要编辑WordPress主题文件(例如single.php),以在其中显示自定义边栏。您将寻找以下代码:

<?php get_sidebar(); ?>

将此行替换为以下代码:

<?php global$wp_query;$postid= $wp_query->post->ID;$sidebar= get_post_meta($postid, "sidebar", true);get_sidebar($sidebar);wp_reset_query();?>

这段代码只是寻找侧边栏自定义字段,然后在主题中显示它。例如,如果将wpbpage添加为侧边栏自定义字段,则代码将查找sidebar-wpbpage.php文件以显示。

您将需要在主题文件夹中创建sidebar-wpbpage.php文件。您可以从主题的sidebar.php文件中复制代码作为起点。

使用自定义字段处理RSS feed内容

是否想向您的RSS feed用户显示其他元数据或内容?使用自定义字段,您可以操纵WordPress RSS feed并将自定义内容添加到feed中。

首先,您需要在主题的functions.php文件或特定于站点的插件中添加以下代码。

functionwpbeginner_postrss($content) {global$wp_query;$postid= $wp_query->post->ID;$coolcustom= get_post_meta($postid, 'coolcustom', true);if(is_feed()) {if($coolcustom!== '') {$content= $content."<br /><br /><div>".$coolcustom."</div>";}else{$content= $content;}}return$content;}add_filter('the_excerpt_rss', 'wpbeginner_postrss');add_filter('the_content', 'wpbeginner_postrss');

现在,只需创建一个名为“ coolcustom”的自定义字段,然后添加您喜欢的任何值即可。您可以使用它来显示广告,图像,文本或任何您想要的东西。

使用自定义字段处理RSS Feed标题

有时,您可能想为RSS feed用户在帖子标题中添加其他文本。例如,如果您要发布赞助帖子或来宾帖子。

首先,将以下代码添加到主题的functions.php文件或特定于站点的插件中。

functionwpbeginner_titlerss($content) {global$wp_query;$postid= $wp_query->post->ID;$gpost= get_post_meta($postid, 'guest_post', true);$spost= get_post_meta($postid, 'sponsored_post', true);
if($gpost!== '') {$content= 'Guest Post: '.$content;}elseif($spost!== ''){$content= 'Sponsored Post: '.$content;}else{$content= $content;}return$content;}add_filter('the_title_rss', 'wpbeginner_titlerss');

接下来,您需要编辑要在标题字段中显示额外文本的帖子,并在自定义字段中添加guest_post和Sponsored_post。

如果发现这两个自定义字段中的任何一个的值为“ true”,则它将在标题之前添加适当的文本。可以通过各种方式利用此技术以适合您的任何需求。

想了解更多酷的RSS feed技巧吗?请参阅我们的指南,了解如何添加内容和操作WordPress RSS feed。

使用自定义字段设置WordPress中帖子的过期日期

是否想为您的WordPress网站上的某些帖子设置过期日期?当您只想在特定时期内发布内容(例如进行调查或限时优惠)时,这非常方便。

一种方法是手动删除帖子内容或使用类似Post Expirator插件的插件。

另一种方法是使用自定义字段在特定时间后自动使帖子过期。

您将需要编辑主题文件并添加修改WordPress循环的方法,如下所示:

<?phpif(have_posts()) :while(have_posts()) : the_post(); $expirationtime= get_post_meta($post->ID, "expiration", false);if( count( $expirationtime) != '') { if(is_array($expirationtime)) {$expirestring= implode($expirationtime);}
$secondsbetween= strtotime($expirestring)-time();if( $secondsbetween>= 0 ) {echo'This post will expire on '.$expirestring.'';the_content();} else{ echo"Sorry this post expired!"}} else{ the_content();} endwhile;endif;?>

注意:您将需要编辑此代码以匹配您的主题。

添加此代码后,可以将过期自定义字段添加到要过期的帖子中。确保以以下格式添加时间mm / dd / yyyy 00:00:00

使用自定义字段为单个帖子设置样式

是否想使用CSS更改单个帖子的外观?WordPress自动为每个帖子分配自己的类,您可以使用该类添加自定义CSS。

但是,使用自定义字段可以添加自己的自定义类,然后使用它们对帖子进行不同的样式设置。

首先,您需要编辑要更改样式的帖子。转到自定义字段框和课后自定义字段。

接下来,您需要编辑WordPress主题文件,并在WordPress循环开始时添加此代码。

<?php $custom_values= get_post_meta($post->ID, 'post-class'); ?>

现在,您需要使用post_class()函数查找一行。这是在我们的演示主题中的外观:

<article id="post-<?php the_ID(); ?>"<?php post_class(); ?>>

更改此行以包括您的自定义字段值,如下所示:

<article id="post-<?php the_ID(); ?>"<?php post_class($custom_values); ?>>

现在,如果您使用Inspect工具检查帖子的源代码,那么您将看到自定义字段CSS类已添加到帖子类中。

现在,您可以使用此CSS类添加自定义CSS,并以不同的方式设置帖子样式。

回到顶部