如何在单个页面上添加自定义字段

时间:2016-04-25 12:39:59

标签: wordpress

我需要在Wordpress页面上添加一个字段(文本编辑器),但它只是在一个页面上,无论是id还是slug的特定页面。

注意:它是WordPress仪表板中的自定义字段。它应该在我编辑此页面时显示。没有插件,只能通过代码,因为我没有看到需要安装插件才能做到这一点。

我该怎么做?

提前谢谢!为所有人欢呼!

2 个答案:

答案 0 :(得分:0)

我使用WordPress存储库中提供的高级自定义字段(ACF)插件(免费),然后您可以在其中选择一个字段组,然后选择您想要的所有字段。

对于文本编辑器,您可以使用WSYWIG编辑器作为字段类型,一旦选择了字段,就可以选择位置作为要显示的页面或帖子。

高级自定义字段对我来说是WP的前5个插件之一,所以需要时间和学习它,你可以通过各种方式使用它。

希望这有帮助

保重和快乐编码

答案 1 :(得分:0)

您好在functions.php文件中添加此代码

看起来像波纹管图像。 enter image description here

/* Define the custom box */
add_action( 'add_meta_boxes', 'myplugin_add_custom_box' );

/* Do something with the data entered */
add_action( 'save_post', 'myplugin_save_postdata' );

/* Adds a box to the main column on the Post and Page edit screens */
function myplugin_add_custom_box() {
  add_meta_box( 'wp_editor_test_1_box', 'WP Editor Test #1 Box', 'wp_editor_meta_box', 'post' );
}

/* Prints the box content */
function wp_editor_meta_box( $post ) {


  // Use nonce for verification
  wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' );

  $field_value = get_post_meta( $post->ID, '_wp_editor_test_1', false );

  // Settings that we'll pass to wp_editor
  $args = array (
        'tinymce' => false,
        'quicktags' => true,
  );
  wp_editor( $field_value[0], '_wp_editor_test_1', $args );
}

/* When the post is saved, saves our custom data */
function myplugin_save_postdata( $post_id ) {

  // verify if this is an auto save routine. 
  // If it is our form has not been submitted, so we dont want to do anything
  if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 
      return;

  // verify this came from the our screen and with proper authorization,
  // because save_post can be triggered at other times
  if ( ( isset ( $_POST['myplugin_noncename'] ) ) && ( ! wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) ) )
      return;

  // Check permissions
  if ( ( isset ( $_POST['post_type'] ) ) && ( 'page' == $_POST['post_type'] )  ) {
    if ( ! current_user_can( 'edit_page', $post_id ) ) {
      return;
    }    
  }
  else {
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
      return;
    }
  }

  // OK, we're authenticated: we need to find and save the data
  if ( isset ( $_POST['_wp_editor_test_1'] ) ) {
    update_post_meta( $post_id, '_wp_editor_test_1', $_POST['_wp_editor_test_1'] );
  }

}