wordpress - 如何在 Wordpress 中为我的主题创建新的自定义字段
问题描述
我创建了一个超级简单的主题。我想要的是能够为每个帖子和页面定义一个包含 3 个字段的数组。
例如具有以下字段:名称、链接和类型的下拉列表
此外,我想为每个帖子/页面添加这些“字段集”的多个项目。我找不到任何关于此的文档,但总是在 Google 中找到导致我使用 WP Plugins 的结果。一般来说,这很好,因为在这种情况下,这似乎可以通过编程方式实现,但不好的原因是我找不到任何关于此的信息。
希望有人可以帮助我。
解决方案
您正在寻找具有以下add_meta_box()
功能的自定义元框:
将元框添加到一个或多个屏幕。
和add_meta_boxes
动作挂钩。
添加所有内置元框后触发:
一个简单的例子是,如果我们想添加一个“正在听...”自定义元框,以便在写帖子时分享我们的心情。
<?php
add_action( 'add_meta_boxes', 'add_meta_listening_to' );
function add_meta_listening_to() {
add_meta_box(
'meta_listening_to', //id
'Listening to ...', //title
'listeningto', //callback
'post', //screen &/or post type
'normal', //context
'high', //priority
null //callback_args
);
};
function listeningto( $post ) { //function handle same as callback
$ListeningToInput = get_post_meta( $post->ID, 'ListeningToInput', true );
echo '<input name="listening_to_input" type="text" placeholder="Listening to ..." value="'. $ListeningToInput .'" style="width:100%;">';
};
add_action( 'save_post', 'save_meta_listening_to' );
function save_meta_listening_to( $post_ID ) {
if ( isset( $_POST[ 'listening_to_input' ] ) ) {
update_post_meta( $post_ID, 'ListeningToInput', esc_html( $_POST[ 'listening_to_input' ] ) );
};
}; ?>
然后要在前端显示,我们将使用以下内容:
<?php echo get_post_meta( $post->ID, 'ListeningToInput', true ); ?>
学到更多
推荐阅读
- php - 不能对 mysqli 使用多个 STMT 查询
- python-3.x - 如何在 Windows 上使用 Selenium 和 Python 启动 AVG Secure Browser 会话
- html - 导航栏下拉功能
- javascript - 在 javascript 中存储原始数据类型
- python - nidaqmx Python包的停止方法中的分段错误
- sql - 如何在 AWS Athena 中成功将字符串转换为日期类型?
- gatsby - 在strapi中启用预览选项
- selenium - 使用 Selenium WebDriver 填充伪 ::before 和 ::after 元素的单选选项选择
- python-3.x - 当第一次合并的结果为空时执行第二次合并
- java - 如何将键盘侦听器添加到 GraphicsProgram