WordPress添加自定义字段栏目面板

WordPress添加自定义字段栏目面板

在 WordPress 中添加自定义字段可以让你更加方便地管理文章或页面信息。而创建一个自定义字段,就需要使用到 WordPress 自定义字段 API 函数,下面我们来详细了解下 WordPress 添加自定义字段栏目面板的方法。

步骤:

  1. 首先在主题的
    functions.php

    文件中添加以下代码:

  2. //添加自定义字段
    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”修改成自己想要的名字。

  3. 接着,在主题的根目录下新建一个名为“meta.php”的文件,并将以下代码添加到该文件中:
  4. <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>

    这段代码主要用来添加页面展示的自定义字段栏目面板,在展示的时候可以让用户输入要添加的自定义字段的名称和值,最后通过表单提交实现保存。

  5. 接下来,还需要在主题的
    functions.php

    文件中添加以下代码,将自定义字段信息保存到数据库中:

  6. //保存自定义字段信息
    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 函数来验证表单提交的合法性。

  7. 最后,我们还需要在主题的
    single.php

    文件中添加以下代码,以显示自定义字段:

  8. <?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
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容