首页 CMS教程 &#&按 在WordPress中添加元框

在WordPress中添加元框

Feb 10, 2025 am 10:34 AM

Adding Meta Boxes to Post Types in WordPress

WordPress网站建设者或开发者经常会用到元框(Meta Boxes)。本文将深入探讨元框与自定义文章类型的关联和集成,以及如何在WordPress前端使用元框中保存的数据。

核心要点

  • 使用add_meta_box()函数(挂载到add_meta_boxes动作)可以将元框添加到任何文章类型的编辑界面。此函数可用于将元框添加到多个文章类型(如文章、页面和自定义文章类型“书籍”),或添加到所有现有及未来创建的文章类型。
  • 通过将文章类型名称附加到add_meta_boxes动作钩子,可以将元框限制在特定文章类型。register_post_type()函数用于自定义文章类型,其参数数组包含register_meta_box_cb,其值为在设置元框时调用的回调函数。
  • global_notice_meta_box_callback函数包含元框的表单字段。save_post动作钩子处理在将文章保存为草稿或发布时保存到文本区域的数据。通过在保存对应文章内容之前显示元框输入的数据,可以将这些数据有效利用。

将元框添加到文章类型屏幕

Narayan Prusty已涵盖了创建元框的大多数(如果不是全部)PHP函数、参数和动作钩子。

要将元框添加到任何文章类型的编辑屏幕,可以使用add_meta_box()函数并将其挂接到add_meta_boxes动作。

以下代码将元框添加到文章编辑屏幕。请注意global_notice_meta_box_callback函数,该函数用于显示元框中的表单字段。稍后我们将详细介绍。

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

要将元框添加到多个文章类型屏幕(文章、页面和自定义文章类型“书籍”),请创建一个文章类型数组,遍历该数组,并使用add_meta_box()将其添加到这些文章类型中。

function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

要将元框添加到所有现有及未来创建的文章类型,请使用get_post_types()获取文章类型数组,然后用它替换上面的$screen值。

function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

也可以通过省略第三个($screen)参数来将元框添加到所有现有和新的文章类型:

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

还可以通过将文章类型名称(本例中为“book”)附加到add_meta_boxes动作钩子来限制元框到特定文章类型:

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
登录后复制
登录后复制

register_post_type()函数用于自定义文章类型,其参数数组中包含register_meta_box_cb,其值为在设置元框时调用的回调函数。

假设我们使用以下代码创建了一个名为“book”的自定义文章类型:

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

global_notice_meta_box PHP 函数(上面register_meta_box_cb的值)中添加add_meta_box()函数定义将把元框添加到“book”自定义文章类型的编辑屏幕。

再次强调,这是我们的示例global_notice_meta_box函数。

function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

到目前为止,我们已经学习了在WordPress中注册或添加元框的各种方法。我们还需要创建global_notice_meta_box_callback函数,该函数将包含我们元框的表单字段。

以下是global_notice_meta_box_callback函数的代码,该函数将在元框中包含一个文本区域字段。

function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

Adding Meta Boxes to Post Types in WordPress save_post动作钩子处理在将文章保存为草稿或发布时保存到文本区域的数据。

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
登录后复制
登录后复制

为了使用在元框文本区域中输入的数据,我们将在显示其保存对应文章内容之前显示该数据。

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
登录后复制
登录后复制

代码解释

首先,我们创建了一个global_notice_before_post函数,并将其挂接到the_content过滤器,该过滤器带有一个$content参数,其中包含文章内容。

在函数内部,我们包含了全局$post变量,该变量包含当前正在查看的文章的WP_Post对象。

通过get_post_meta检索针对给定文章保存的全局公告,并将其保存到$global_notice变量中。

然后将公告包装在一个div中并保存到$notice变量中。

最后,将包含全局公告的$notice与包含实际文章内容的$content连接起来。

以下是带有文章内容之前的全局公告的文章屏幕截图。

Adding Meta Boxes to Post Types in WordPress

总结

在本教程中,我们学习了在WordPress管理屏幕中注册元框的多种方法,以及如何将它们限制在文章类型中。

我们还回顾了如何向元框添加表单字段,以及如何在保存或发布文章时保存输入的数据。

最后,我们介绍了如何将输入到元框中的数据付诸实践。

在未来的文章中,我们将介绍如何向文章类型管理屏幕添加上下文帮助选项卡。

如果您有任何问题或建议,欢迎在评论中提出。

WordPress中向文章类型添加元框的常见问题

  • 什么是WordPress中的元框? WordPress中的元框是在管理界面中显示的可拖动框。这些框用于显示附加的输入字段,允许用户自定义不同类型文章的功能和布局。它们可以添加到文章、页面和自定义文章类型。元框可以包含各种类型的字段,包括文本、复选框、选择选项等等。

  • 如何在WordPress中向自定义文章类型添加元框? 要向WordPress中的自定义文章类型添加元框,需要使用add_meta_box()函数。此函数允许您指定元框ID、标题、回调函数、文章类型、上下文和优先级。回调函数用于输出元框的内容。

  • 我能否向单个文章类型添加多个元框? 可以。每个元框都应具有唯一的ID,以避免冲突。您可以多次使用add_meta_box()函数并使用不同的参数来添加多个元框。

  • 如何保存输入到元框字段中的数据? 要保存输入到元框字段中的数据,需要将一个函数挂接到save_post动作。此函数应检查nonce,验证当前用户的权限,然后使用update_post_meta()add_post_meta()函数将元框数据保存到数据库。

  • 如何在前端显示元框数据? 要在前端显示元框数据,可以在循环中使用get_post_meta()函数。此函数从数据库检索元框数据并将其作为字符串返回,然后您可以在模板文件中将其输出。

  • 我能否将元框添加到页面以及文章? 可以。使用add_meta_box()函数时,可以将文章类型指定为“page”以向页面添加元框。

  • 如何从文章类型中删除元框? 可以使用remove_meta_box()函数。此函数需要元框ID和文章类型作为参数。

  • 我能否自定义元框在文章编辑屏幕中的位置? 可以。add_meta_box()函数的context参数决定了元框的位置。可能的值为“normal”、“side”和“advanced”。

  • 我能否将元框添加到插件创建的自定义文章类型? 可以。您只需要知道自定义文章类型的slug,然后将其用作add_meta_box()函数中的post_type参数。

  • 如何设置元框及其字段的样式? 可以使用CSS设置元框及其字段的样式。元框将具有“postbox”类,您可以向元框中的字段添加您自己的类。然后,您可以在CSS中定位这些类以应用样式。

以上是在WordPress中添加元框的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1653
14
CakePHP 教程
1413
52
Laravel 教程
1305
25
PHP教程
1251
29
C# 教程
1224
24
如何开始WordPress博客:初学者的分步指南 如何开始WordPress博客:初学者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

如何在 WordPress 中获取登录用户信息以获得个性化结果 如何在 WordPress 中获取登录用户信息以获得个性化结果 Apr 19, 2025 pm 11:57 PM

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

如何在父分类的存档页面上显示子分类 如何在父分类的存档页面上显示子分类 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

如何在 WordPress 中按帖子过期日期对帖子进行排序 如何在 WordPress 中按帖子过期日期对帖子进行排序 Apr 19, 2025 pm 11:48 PM

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

对于初学者来说,WordPress容易吗? 对于初学者来说,WordPress容易吗? Apr 03, 2025 am 12:02 AM

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) 如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) Apr 18, 2025 am 11:27 AM

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

如何在 WordPress 中显示查询数量和页面加载时间 如何在 WordPress 中显示查询数量和页面加载时间 Apr 19, 2025 pm 11:51 PM

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

See all articles