WordPress自定义字段面板添加教程


文章目录 隐藏

需求说明

在WordPress中编写文章时,我们经常需要添加一些自定义字段,比如网页描述 (description) 和关键词 (keywords)。通常,我们需要手动在“自定义字段”模块中选择字段并输入值,这个过程略显繁琐。为了提高效率,我们可以创建一个单独的面板,直接在文章编辑页面中填写这些自定义字段。下面是具体的实现步骤。

详细步骤

一、创建需要的字段信息

functions.php 文件中定义需要的自定义字段信息。以下示例中添加了两个自定义字段:_description_value 和 _keywords_value。

$new_meta_boxes = array(
    "description" => array(
        "name" => "_description",
        "std" => "这里填默认的网页描述",
        "title" => "网页描述:"
    ),
    "keywords" => array(
        "name" => "_keywords",
        "std" => "这里填默认的网页关键字",
        "title" => "关键字:"
    )
);

二、创建自定义字段输入框

添加一个函数用于创建自定义字段输入框:

function new_meta_boxes() {
    global $post, $new_meta_boxes;
    foreach($new_meta_boxes as $meta_box) {
        $meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);
        if($meta_box_value == "")
            $meta_box_value = $meta_box['std'];
        // 自定义字段标题
        echo '<h3>' . $meta_box['title'] . '</h3>';
        // 自定义字段输入框
        echo '<textarea cols="60" rows="3" name="' . $meta_box['name'] . '_value">' . $meta_box_value . '</textarea><br />';
    }
    echo '<input type="hidden" name="ludou_metaboxes_nonce" id="ludou_metaboxes_nonce" value="' . wp_create_nonce(plugin_basename(__FILE__)) . '" />';
}

三、创建自定义字段模块

在文章编辑页添加自定义字段模块:

function create_meta_box() {
    if (function_exists('add_meta_box')) {
        add_meta_box('new-meta-boxes', '自定义模块', 'new_meta_boxes', 'post', 'normal', 'high');
    }
}

四、保存文章数据

添加一个函数用于保存自定义字段中的数据:

function save_postdata($post_id) {
    global $new_meta_boxes;
    if (!wp_verify_nonce($_POST['ludou_metaboxes_nonce'], plugin_basename(__FILE__)))
        return;
    if (!current_user_can('edit_posts', $post_id))
        return;
    foreach($new_meta_boxes as $meta_box) {
        $data = $_POST[$meta_box['name'] . '_value'];
        if ($data == "")
            delete_post_meta($post_id, $meta_box['name'] . '_value', get_post_meta($post_id, $meta_box['name'] . '_value', true));
        else
            update_post_meta($post_id, $meta_box['name'] . '_value', $data);
    }
}

五、将函数连接到指定action(动作)

将创建和保存自定义字段的函数连接到 WordPress 的 admin_menusave_post 动作:

add_action('admin_menu', 'create_meta_box');
add_action('save_post', 'save_postdata');

使用自定义字段

现在可以在你的主题中调用这些自定义字段了。比如,在 header.php 中添加以下代码来设置网页的 description 和 keywords 标签:

<?php
if (is_single()) {
    // 自定义字段名称为 description_value
    $description = get_post_meta($post->ID, "_description_value", true);
    // 自定义字段名称为 keywords_value
    $keywords = get_post_meta($post->ID, "_keywords_value", true);
    // 去除不必要的空格和HTML标签
    $description = trim(strip_tags($description));
    $keywords = trim(strip_tags($keywords));
    echo '<meta name="description" content="' . $description . '" />';
    echo '<meta name="keywords" content="' . $keywords . '" />';
}
?>

通过以上步骤,我们成功地在WordPress中创建了一个自定义字段面板,并将其添加到文章编辑页,方便填写和保存描述和关键词等信息。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123@#-@12-3.com举报,一经查实,本站将立刻删除。

共有 30 条评论