Titan Framework确实减轻了在Web开发项目中创建metabox的繁琐任务。 在使用Titan框架之前,我必须编写一些很长的代码才能在帖子和/或页面编辑屏幕中显示元框。 现在,它使过程变得非常简单,这就是我今天要讨论的内容。 因此,让我们学习如何使用Titan Framework创建一个metabox。
在Titan中创建一个Metabox
在我深入探讨此主题之前,让我们假设您具有:
- 安装了WordPress的有效演示网站
- 在此演示网站中安装并激活或嵌入了Titan插件
- 项目中包含的
titan-framework-checker.php
文件
我将再次使用名为Neat的主题作为我将在此处使用的代码。 在之前的文章中,我解释了主题模板文件的组织方式是, 资产文件夹中有一个单独的文件夹,用于管理相关的内容。 此文件还包含用于metabox-options-init.php
代码的文件,即metabox-options-init.php
,位于以下位置: assets/admin/
titanframework
/metabox-options-init.php
。
因此,以下代码将在我们提到的所有帖子类型的编辑屏幕上添加一个metabox,它们是:
- 页
- 发布
-
my_custom_post_type
,它是任何自定义帖子类型的名称
<?php
/**
* Creating metabox options via Titan Framework.
*
* Getting started: https://www.titanframework.net/get-started/
* Metabox: http://www.titanframework.net/meta-box/
* Options: http://www.titanframework.net/docs/
* Getting Option Values: http://www.titanframework.net/getting-option-values/
*/
add_action( 'tf_create_options', 'aa_metabox_options' );
function aa_metabox_options() {
// Initialize Titan with your theme name.
$titan = TitanFramework::getInstance( 'neat' );
/**
* First metabox.
*/
$aa_metbox = $titan->createMetaBox( array(
'name' => 'Metabox Options', // Name the options menu.
'post_type' => array( 'page', 'post', 'my_custom_post_type' ) // Can be a string or array.
) );
}
一开始有一些注释行,它们为您提供了一些与metabox开发相关的帮助链接。 它的下面是一个add_action()
函数,该函数tf_create_options
钩子,该钩子注册aa_metabox_options
函数,以在metabox内添加选项。
接下来(第14行),我定义了一个函数来封装我们的元aa_metabox_options
代码,即aa_metabox_options
。 它包含创建我们的元框所需的全部功能。
该过程从获取Titan框架的唯一实例并将其注册到$titan
变量(第17行)开始。 调用getInstance()
函数是Titan不可或缺的一部分,在使用Titan Framework的每个新例程或文件中都需要调用该函数。 该函数带有一个唯一的参数,最好是您的主题名称,以在您的项目中初始化Titan。 这就是为什么我使用“ 整洁”作为我的唯一名称的原因。 我在上一篇文章中也对此进行了详细解释。
此代码的第23行是我创建元框的地方。 使用Titan Framework,您可以使用createMetaBox()
函数在主题/插件中添加元框。 因此,根据这一行代码,我在Titan框架中创建了$aa_metbox
。
注意另一件事: createMetaBox()
函数获取一个参数数组,该参数数组可以使用诸如name
, desc
, post_type
等参数。因此,利用这些参数,我将此元post_type
命名为“ Metabox Options ”(第24行)。 因此,它将以该名称显示在我的页面和帖子编辑屏幕中。
此代码的最后一行(第25行)将此新创建的元框附加到我提到的所有帖子类型。 post_type
还是一个参数,用于指定此元post_type
将以哪种帖子类型显示。 就我的代码而言,我将其显示在所有页面和帖子以及my_custom_post_type
。 另请注意,如果您需要在多个帖子类型上使用metabox,则此参数占用一个数组。 但是当您只需要将metabox用于一种帖子类型时,例如当'post_type'=>'page'时,它也可以是一个字符串。
现在转到WordPress仪表板,然后单击“ 帖子”中的“ 添加新菜单” 。 向下滚动,您将找到一个名为Metabox Options的元框。 这是它的屏幕截图:
对您网站的任何页面或自定义帖子类型执行相同的操作,您还将在此处找到相同的元框。
此metabox目前为空。 因此,让我们在其中添加选项。
在元框内添加选项
只需将这些行复制并粘贴在上面编写的代码的正下方。
<?php
/**
* Create the options for metabox.
*
* Now we will create options for our metabox that we just created called `$aa_metbox`.
*/
$aa_metbox->createOption( array(
'id' => 'aa_mb_txt', // The id which will be used to get the value of this option.
'type' => 'text', // Type of option we are creating.
'name' => 'My Text Option', // Name of the option which will be displayed in the admin panel.
'desc' => 'This is our option' // Description of the option which will be displayed in the admin panel.
) );
在Titan中创建选项对您来说并不是什么新鲜事物。 我再次使用createOption()
函数添加选项。 但是您应该注意的是第9行,该行还指定在何处创建此选项,即在$aa_metbox
。 因此,我在名为“ My Text Option ”的元aa_mb_txt
创建了一个text
类型字段,其ID为aa_mb_txt
。
上面的屏幕截图是我到目前为止的开发结果。 但是这次是一页。 您可以清楚地找到其中具有“ 我的文本选项”字段的“ Metabox选项”框。
那么,还剩下什么呢? 检索值后,在前端打印输出。 现在就开始吧!
获取保存的值
现在,我将在上述屏幕快照中检索页面前端的已保存值。 干得好:
<?php
/* Template Name: Titan Framework */
get_header();
// Initialize Titan with your theme name.
$titan = TitanFramework::getInstance( 'neat' );
$aa_mb_txt_val = $titan->getOption( 'aa_mb_txt', get_the_ID() );
/**
* First metabox option.
*/
// Let's use this value in HTML.
?>
<p>The value of metabox option txt for this page is: <?php echo $aa_mb_txt_val; ?></p>
这里的getOption()
函数(第10行)带有两个参数。 一个是选项的唯一ID,即aa_mb_txt
,第二个是get_the_ID_()
函数。 我使用了get_the_ID()
因为为我们定义的所有帖子类型创建了元get_the_ID()
。 如果需要获取特定页面/帖子的metabox选项的值,则将给getOptions()
函数该特定帖子/页面的ID。 结果保存在$aa_mb_txt_val
。
接下来创建一个段落(第19行),在其中使用了echo
命令通过aa_mb_txt_val
打印输出。
假设我在metabox中输入了AA-Text-Option
并发布了页面。
瞧,一切都像魅力。
结论
现在您知道如何使用Titan Framework创建元框。 您确实意识到它是如此简单。 在本系列的后续文章中,我将撰写有关如何使用meta框在Titan框架中创建特定选项类型的文章。 我将假设您已经知道如何创建元框本身。 因此,对您而言,尝试这一点至关重要。
在下一篇文章中,我将创建带有选项的主题定制器部分和面板,这有多酷? 在此之前,如果您有任何问题,请通过评论让我知道,或通过Twitter与我联系。