建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WP菜鸟建站26:怎样使用phpMyAdmin工具,操作wordpress数据库?(WordPress如何创建自定义Post Meta框)

GG网络技术分享 2025-03-18 16:12 0


WP菜鸟建站26:怎样使用phpMyAdmin工具,操作wordpress数据库?

在前面的文章中,我们为wordpress网站安装好的mysql数据库管理工具——phpmyadmin,可以直接通过浏览器登录这个phpmyadmin数据库管理工具,就可以对我们的wordpress数据库进行相应的操作了。一般情况下,我们很少对wordpress数据库进行直接的操作,毕竟这样的直接操作,还是存在众多的风险的,一不小心,就可能导致我们的wordpress网站的崩溃。所以,通过phpmyadmin这类数据库管理工具操作wordpress数据库时,一定要非常谨慎。

一、wordpress数据库的结构。

要想通过phpmyadmin数据库管理工具来管理wordpress数据库,我们得先了解一下wordpress数据库是个什么样子的结构。通过phpmyadmin打开wordpress数据库,我们可以看到如下图这样的结构。

从上面的图中,我们可以看出,wordpress数据库默认有以下12张数据表:

wp_commentmeta:这个表是用业存储评论的元数据,wordpress评论垃圾插件处理就在这个表里。wp_comments:这个表存储wordpress所有的文章中的评论。wp_links:用来存放wordpress网站的友情链接。wp_options:这个表是用来存储WordPress系统选项和插件、主题等配置信息的。wp_postmeta:这个表用来存储文章(包括页面、上传文件、修订)的元数据,如:文章的自定义字段。wp_posts:这个表是用来存储wordpress网站的所有文章(包括页面、上传文件、修订)信息。wp_termmeta:这个表是用业存储wordpress网站目录标签的元信息。wp_terms:这个表是用来存储所有文章的目录、标签等相关信息。wp_term_relationships:这个表是用来存储wordpress网站的每个文章、链接和对应分类的关系。wp_term_taxonomy:这个表是存储wordpress网站的每个目录、标签所对应的分类wp_usermeta:这个表是存储wordpress网站的用户的元数据。wp_users:这个表是存储wordpress网站的所有用户信息。

二、通过phpmyadmin数据库管理工具操作wordpress数据库。

了解了wordpress数据库的整体结构及各个数据表所代表的东西,我们在用phpmyadmin操作wordpress数据库时,心里就有了底了。我们要对数据库进行操作,无非有以下几种原因:网站搬家、网站更换域名、网站连接数据库出错等等。在我们对wordpress数据库的日常操作中,主要有以下几种常规操作。

1:备份wordpress数据库。

在前面的章节中,我们介绍了wordpress自带的“导出”功能,这个“导出”功能跟我们这里要讲的备份wordpress数据库类似,都是给网站进行备份。wordpress数据库备份是我们必须要经常做的一个操作。phpmyadmin备份wordpress数据库很简单。

首先点击phpmyadmin界面的“导出”菜单,进入如下界面:

默认是选择“快速”,当然,我们也可以根据自己的情况选择“自定义”;其它都默认就可以了。然后点击“执行”按钮,就开始导出。

2:恢复wordpress数据库。

有备份数据库,当然就有恢复数据库了。我们如果网站搬家,我们在新的wordpress网站上肯定要先恢复wordpress数据库了。这个操作很简单,点击顶部“导入”菜单,地入如下图的界面:

点击“选择文件”,在弹出的窗口中选择要恢复的数据库文件(一般都是以.sql为后缀的),其它都默认就可以了。然后点击“执行”,就可以了。

3:修改wordpress网站域名。

如果我们更换了我们的wordpress网站的域名,那么,如果我们不修改数据库的相关数据,通过新域名我们是打不开网站的。怎样通过phpmyadmin来修改wordpress数据库里的域名信息呢?

在phpmyadmin管理工具页面,选择进入wordpress数据库,再点击打开“wp-options”这个数据表,在这个表的“option_name”字段中,找到“siteurl”和“home”这2个,然后,修改它们对应的值“option_value”。如下图:

修改时,只需用鼠标左键双击对应的 option_value 就要吧对它进行修改。

​通过以上的介绍,我们了解了wordpress数据库的整体结构,以及我们通过phpmyadmin工具对wordpress数据库的几个常规操作。还是那句话,不到万不得已,我们尽量不要去碰这个wordpress数据库。当然,通过phpmyadmin管理工具来对wordpress数据库进行备份操作,还是建议经常做的,这就是所谓的有备无患嘛。好了,本章就介绍这里,如有疑问,欢迎点评或私信我。

WordPress如何创建自定义Post Meta框

在构建Wordpress自定义post meta框之前,您必须对你要使用的Custom post meta数据类型有一些想法。本教程将重点介绍如何创建带样式的自定义文章META框。

1、建立自定义POST META框:
如果你仅仅是需要将META框显示在后台发布文章页面使用,你只需用load-post.php和load-post-new.php这两个钩子来应用Custom META框代码。

/* Fire our meta box setup function on the post editor screen. */

add_action( \'load-post.php\', \'smashing_post_meta_boxes_setup\' );

add_action( \'load-post-new.php\', \'smashing_post_meta_boxes_setup\' );

以下代码将创建文章META框,我们可以用WordPress的钩子实现:

/* Meta box setup function. */

function smashing_post_meta_boxes_setup() {

/* Add meta boxes on the \'add_meta_boxes\' hook. */

add_action( \'add_meta_boxes\', \'smashing_add_post_meta_boxes\' );

}

这里需要对add_meta_box()的具体用法做点说明:

add_meta_box( $id, $title, $callback, $page, $context = \'advanced\', $priority = \'default\', $callback_args = null );

  • $id: meta框唯一ID。
  • $title: meta框标题。
  • $callback: meta框输出内容。
  • $page: 显示meta框的文章类型页面。例如:post, page, 或自定义文章类型。
  • $context: meta框显示在页面哪里。可选:normal, advanced, 和side。
  • $priority: 可选项:default, core, high, 和low。
  • $callback_args: 一个自定义参数的数组,你可以通过回调函数为第二个参数。

以下代码将添加post class meta box到文章编辑页:

/*

添加meta box到文章编辑页

代码来源: www.wpzxbj.com

*/

function smashing_add_post_meta_boxes() {

add_meta_box(

\'smashing-post-class\', // Unique ID

esc_html__( \'Post Class\', \'example\' ), // Title

\'smashing_post_class_meta_box\', // Callback function

\'post\', // Admin page (or post type)

\'side\', // Context

\'default\' // Priority

);

}

输出HTML代码:

function smashing_post_class_meta_box( $object, $box ) { ?>


<input class="widefat" type="text" name="smashing-post-class" id="smashing-post-class" value="ID, \'smashing_post_class\', true ) ); ?>\" size=\"30\" />

<?php }

至此,你已经可以在文章编辑页面看到自定义META框了。

2、保存自定义POST META数据:

第一步只解决了文章编辑页面显示文章自定义META框的问题,还需要解决保存填入的数据。我们可以用save_post这个钩子来实现,以下是代码:

/* Meta box setup function. */

function smashing_post_meta_boxes_setup() {

/* Add meta boxes on the \'add_meta_boxes\' hook. */

add_action( \'add_meta_boxes\', \'smashing_add_post_meta_boxes\' );

/* Save post meta on the \'save_post\' hook. */

add_action( \'save_post\', \'smashing_save_post_class_meta\', 10, 2 );

}

最终完整的保存custom post meta数据代码如下:

/*

添加自定义meta box到文章编辑页

代码来源: www.wpzxbj.com

*/

/* Save the meta box\'s post metadata. */

function smashing_save_post_class_meta( $post_id, $post ) {

/* Verify the nonce before proceeding. */

if ( !isset( $_POST[\'smashing_post_class_nonce\'] ) || !wp_verify_nonce( $_POST[\'smashing_post_class_nonce\'], basename( __FILE__ ) ) )

return $post_id;

/* Get the post type object. */

$post_type = get_post_type_object( $post->post_type );

/* Check if the current user has permission to edit the post. */

if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )

return $post_id;

/* Get the posted data and sanitize it for use as an HTML class. */

$new_meta_value = ( isset( $_POST[\'smashing-post-class\'] ) ? sanitize_html_class( $_POST[\'smashing-post-class\'] ) : \'\' );

/* Get the meta key. */

$meta_key = \'smashing_post_class\';

/* Get the meta value of the custom field key. */

$meta_value = get_post_meta( $post_id, $meta_key, true );

/* If a new meta value was added and there was no previous value, add it. */

if ( $new_meta_value && \'\' == $meta_value )

add_post_meta( $post_id, $meta_key, $new_meta_value, true );

/* If the new meta value does not match the old value, update it. */

elseif ( $new_meta_value && $new_meta_value != $meta_value )

update_post_meta( $post_id, $meta_key, $new_meta_value );

/* If there is no new meta value but an old value exists, delete it. */

elseif ( \'\' == $new_meta_value && $meta_value )

delete_post_meta( $post_id, $meta_key, $meta_value );

}

3、如何获取自定义post meta数据:

/* Filter the post class hook with our custom post class function. */

add_filter( \'post_class\', \'smashing_post_class\' );

function smashing_post_class( $classes ) {

/* Get the current post ID. */

$post_id = get_the_ID();

/* If we have a post ID, proceed. */

if ( !empty( $post_id ) ) {

/* Get the custom post class. */

$post_class = get_post_meta( $post_id, \'smashing_post_class\', true );

/* If a post class was input, sanitize it and add it to the post class array. */

if ( !empty( $post_class ) )

$classes[] = sanitize_html_class( $post_class );

}

return $classes;

}

标签:

提交需求或反馈

Demand feedback