Products
GG网络技术分享 2025-03-18 16:12 0
在前面的文章中,我们为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框之前,您必须对你要使用的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 );
以下代码将添加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