WordPress添加自定义字段栏目面板
在 WordPress 中添加自定义字段可以让你更加方便地管理文章或页面信息。而创建一个自定义字段,就需要使用到 WordPress 自定义字段 API 函数,下面我们来详细了解下 WordPress 添加自定义字段栏目面板的方法。
步骤:
- 首先在主题的
functions.php
文件中添加以下代码:
- 接着,在主题的根目录下新建一个名为“
meta.php
”的文件,并将以下代码添加到该文件中: - 接下来,还需要在主题的
functions.php
文件中添加以下代码,将自定义字段信息保存到数据库中:
- 最后,我们还需要在主题的
single.php
文件中添加以下代码,以显示自定义字段:
//添加自定义字段
function add_meta_custom_fields(){
add_meta_box('custom_fields','自定义字段','show_custom_fields', 'post','normal','high');
}
function show_custom_fields(){
global $post;
echo <input type="hidden" name="custom_field" id="custom_field" value="'.wp_create_nonce( plugin_basename( __FILE__ ) ).'" />;
echo '<p><label>自定义字段名称:</label><input name="custom_field_name" value="'.get_post_meta($post->ID,'custom_field_name',true).'" /></p>';
}
add_action('add_meta_boxes','add_meta_custom_fields');
其中,<input type="hidden" name="custom_field" id="custom_field" value="'.wp_create_nonce( plugin_basename( __FILE__ ) ).'" />
是用来避免某些恶意攻击的,同时我们也可以将“custom_field”修改成自己想要的名字。
<div class="wrap">
<form method="post">
<p>
<h3>自定义字段名称:</h3>
<input type="text" name="meta-name" size="30" />
</p>
<p>
<h3>自定义字段值:</h3>
<textarea name="meta-value" cols="60" rows="4"></textarea>
</p>
<p><input type="submit" name="submit" value="保存" class="button button-primary" /></p>
<input type="hidden" name="meta_box_nonce" value="' . wp_create_nonce( basename(__FILE__) ) . '">
</form>
</div>
这段代码主要用来添加页面展示的自定义字段栏目面板,在展示的时候可以让用户输入要添加的自定义字段的名称和值,最后通过表单提交实现保存。
//保存自定义字段信息
function save_meta_fields($post_id){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
if (!current_user_can('edit_post', $post_id)) {
return $post_id;
}
if (isset($_POST['meta_name']) && isset($_POST['meta_value']) && wp_verify_nonce($_POST['meta_box_nonce'], basename(__FILE__))) {
$meta_name = sanitize_text_field($_POST['meta_name']);
$meta_value = $_POST['meta_value'];
update_post_meta($post_id, $meta_name, $meta_value);
}
}
add_action('save_post', 'save_meta_fields');
这里我们使用了 WordPress 内置的 update_post_meta
函数来保存自定义字段信息,并使用了 wp_verify_nonce
函数来验证表单提交的合法性。
<?php if ( get_post_meta($post->ID, 'meta_name', true) ) : ?>
<h3>自定义字段名称</h3>
<p><?php echo get_post_meta($post->ID, 'meta_name', true); ?></p>
<?php endif; ?>
在单个文章或页面的展示页面中调用自定义字段的信息,并使用 get_post_meta
函数加载自定义字段的信息。在代码中可以指定自定义字段的名称进行调用。
通过以上方法,我们就可以在 WordPress 中添加自定义字段栏目面板了。
晓白博客网版权所有,原文地址https://www.xbnb.cn/5037
© 版权声明
THE END
请登录后查看评论内容