重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
WordPress是一款基于PHP和MySQL的开源博客系统,数据存储在数据库中有以下好处:
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为长沙县企业提供专业的网站设计、成都网站制作,长沙县网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
数据安全性高:数据库采用了多种安全机制来保护数据,例如数据备份、数据恢复、访问控制等,可以有效地保护数据的安全性,防止数据丢失或被非法访问。
数据组织性强:数据库可以将数据按照一定的结构和规则组织起来,例如将文章、评论、用户等数据分别存储在不同的表中,方便管理和查询。
数据可扩展性强:数据库可以很方便地扩展和升级,例如增加新的数据表、字段、索引等,以满足不同的需求和应用场景。
数据处理速度快:数据库采用了高效的查询和索引机制,可以快速地处理大量的数据,提高数据的处理效率和响应速度。
数据共享性强:数据库可以通过网络共享和访问,实现不同应用之间的数据共享和交互,提高数据的利用率和效益。
综上所述,将WordPress的数据存储在数据库中可以提高数据的安全性、组织性、可扩展性、处理速度和共享性,为网站的管理和运营提供了很大的便利和支持。
1、彻底清除残留WordPress主题垃圾数据
经常换WP主题删WP主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。可使用下面的SQL语句来清除不需要的post meta值。有益于加快数据库运行速度,减小数据。
处理方法:清理wp_postmeta数据表,删除文章Meta标签,执行SQL语句,(建议先备份数据库,以上商法,后进者网络均已测试无误)
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_last’;
2、彻底删除WP草稿修订版本残留数据
后台编辑文章时,系统会自动保存多个修订的副本。过多的修订记录会加重数据库负担造成资源浪费,数据库越来越庞大,增加了数据检索影响页面的加载时间。
处理方法:清理wp_posts数据表,删除草稿修订版本,执行SQL语句
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships bON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID =c.post_id)
WHERE a.post_type = ‘revision’
注意: 此方法将删除所有的文章的所有修订版,包括相关的meta数据。
也可以使用插件WP-Cleane处理。
3、批量删除WordPress所有垃圾评论
遇到N多垃圾评论,一个一个删除的话会崩溃。可使用下面的SQL语句查询,批量删除WP垃圾评论也不是难事。
处理方法:执行SQL语句
DELETE FROM wp_comments WHEREcomment_approved = ‘spam’;
0 = Comment Awaiting Moderation
1 = Approved Comment
spam = Comment marked as Spam
先用上面方法删除之前的垃圾评论,以后推荐使用Akismet插件,Akismet拥有广泛的垃圾留言过滤系统,省下很多事。
4、删除WordPress未使用标签垃圾数据
WordPress数据库中,如果你使用一个查询语句手动来删除旧的文章,旧的标签却仍然会保留并在你的标签云/列表中出现。你可以使用下面的方法识别未使用的标签并将它删除。
处理方法:执行SQL语句
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ONwt.term_id=wtt.term_id
INNER JOIN wp_term_relationshipswtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ONwp.ID=wtr.object_id
WHERE taxonomy=’post_tag’
AND ID IS null
AND NOT EXISTS(SELECT * Fromwp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ONwt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
有的人也许会问,这么复杂的SQL语句,应该有WP插件开发者开发相应的数据库优化插件吧。没错还真有相关的优化WP数据库插件。
WordPress数据库优化插件 wp db manager :可以优化、修复、定期备份、执行mysql命令的插件。安装好这个插件之后,可以选择Optimize DB优化数据库。
1、 在comments.php评论表单中添加自己想要的字段,如:
p
input type="text" name="tel" id="tel" size="22" tabindex="4" /
label for="tel"电话/label
/p
tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….
2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过
add_filter('comment_form_default_fields','comment_form_add_ewai');
function comment_form_add_ewai($fields) {
$label1 = __( '国家/地区' );
$label2 = __( 'Skype账号' );
$label3 = __( '电话' );
$label4 = __( '传真' );
$label5 = __( '地址' );
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
$value5 = isset($_POST['address']) ? $_POST['address'] : false;
$fields['guojia'] =HTML
p
label for="guojia"{$label1}/label
input id="guojia" name="guojia" type="text" value="{$value1}" size="30" /
/p
HTML;
return $fields;
}
3、 接收表单字段并写入数据库
在主题目录的 functions.php添加以下代码
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
//_tel 是存储在数据库里的字段名字,取出数据的就会用到
update_comment_meta($comment_ID,'_tel',$tel);
}
这两步就可以将数据写入数据库了,不信你试试看
add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。
4、在后台显示额外字段
前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '电话' ); //电话是代表列的名字
return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true );
break;
}
如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字
?php
$tel = get_comment_meta($comment-comment_ID,'_tel',true);
if( !empty($tel)){
echo "电话".$tel;
}
?
5、 大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。
6、如果要移除某一个自带的表单字段,可以使用以下代码
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel']);
return $fields;
}
add_filter('comment_form_default_fields', 'tel')