数据库链接替换
- 连接数据库,选中表并执行以下SQL命令,注意修改表前缀
UPDATE wp_options SET option_value = replace(option_value, '旧地址', '新地址') WHERE option_name = 'home' OR option_name = 'siteurl';//替换设置
UPDATE wp_posts SET post_content = replace(post_content, '旧地址', '新地址');//替换文章
UPDATE wp_postmeta SET meta_value = replace(meta_value, '旧地址', '新地址');//替换评论
UPDATE wp_comments SET comment_content = replace(comment_content , '旧地址', '新地址');//替换评论
UPDATE wp_posts SET guid = REPLACE (guid, '旧地址', '新地址') WHERE post_type = 'attachment';//替换附件
显示耗时,查询次数及内存
- 首先在主题functions.php中加入功能代码
//页面加载时间自动检测
function wp_page_speed() {
date_default_timezone_set( get_option( 'timezone_string' ) );
$content .= timer_stop( $display = 0, $precision = 2 );
$content .= ' s';
echo $content;
}
//查询次数,占用内存
function performance( $visible = false ) {
$stat = sprintf( '秒,查询数据库 %d 次,占用 %.2fMB 内存',
get_num_queries(),
timer_stop( 0, 3 ),
memory_get_peak_usage() / 1024 / 1024
);
echo $visible ? $stat : "<!-- {$stat} -->" ;
}
- 再在主题footer.php合适位置加入以下代码
//加载耗时
<?php timer_stop(1); ?>
<?php if(function_exists('performance')) performance(true) ;?>
[scode type="blue" size="small"]performance的参数 ture 表示在页面前端显示。如果你想在页面中不显示,只在html源码中可见可改为 false[/scode]
文章评论/登录可见功能
文章评论可见
- 将以下代码加入到主题functions.php中
//文章评论后显示隐藏内容代码
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '<p class="reply-to-read"><font color="#ff0000">温馨提示: </font>此处为隐藏内容,需要<a href="#respond" title="评论本文">评论本文</a>后刷新页面才能查看.</p>'), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
//对博主直接显示内容
$admin_email = "xxx@qq.com"; //博主Email
if ($email == $admin_email) {
return $content;
}
} else if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) {
$email = str_replace('%40', '@', $_COOKIE['comment_author_email_' . COOKIEHASH]);
} else {
return $notice;
}
if (empty($email)) {
return $notice;
}
global $wpdb;
$post_id = get_the_ID();
$query = "SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`=’1′ and `comment_author_email`='{$email}' LIMIT 1";
if ($wpdb->get_results($query)) {
return do_shortcode($content);
} else {
return $notice;
}
}
add_shortcode('reply', 'reply_to_read');
- 在文章中添加[-reply]需要隐藏的内容[/reply],把[reply-]的“-”去掉
- 将代码中的邮箱修改为自己的
- 可自定义评论提示,代码如下,将“-”去掉
[-reply notice=“自定义的隐藏提示信息”]内容[/reply]
文章登录可见
- 同样也是将代码加入主题functions.php中
//部分内容登录可见
function login_to_read($atts, $content=null) { extract(shortcode_atts(array("notice" => '
<span style="color: red;">温馨提示:</span>此处内容需要<a title="登录后可见" href="#respond">登录</a>后刷新页面才能查看!
'), $atts));
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return $notice;
} add_shortcode('hide', 'login_to_read');
- 在文章中添加[-hide]需要隐藏的内容[/hide],把[-hide]的“-”去掉
- 可自定义提醒内容
[-hide notice=“自定义的登录提示信息”]内容[/hide]
后台速度优化
由于wp登录后台会自动检测更新,导致访问速度很慢
- 以下是禁止更新代码,加入到主题functions.php中
add_filter( 'auto_core_update_send_email', '__return_false' );//禁止发送“更新提示”邮件
add_filter( 'auto_update_plugin', '__return_false' );//关闭“插件”的自动更新
add_filter( 'auto_update_theme', '__return_false' );//关闭“主题”的自动更新
add_filter( 'auto_update_translation', '__return_false' );//关闭“语言包”的自动更新
add_filter('automatic_updater_disabled', '__return_true');// 彻底关闭自动更新
add_filter( 'allow_dev_auto_core_updates', '__return_false' );//关闭“开发版内核”更新
add_filter( 'allow_minor_auto_core_updates', '__return_false' );//关闭“主要内核”更新
add_filter( 'allow_major_auto_core_updates', '__return_false' );// 关闭“次要内核”更新
修复 gravatar 头像
由于gravatar被墙,导致页面加载时间很长或者无法显示
- 可换用cravatar,在主题functions.php中加入以下代码
/*修复wordpress上Cravatar头像无法显示问题*/
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
*替换Gravatar头像为Cravatar头像
*
* @param string $url
*
* @return string
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com'
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
设置上传文件类型
配置 functions.php
在主题functions.php中加入以下代码
php 代码:// 自定义附件类型
function custom_upload_mimes($existing_mimes = array()) {
// 添加支持上传的文件类型
$existing_mimes['zip'] = 'application/zip';
$existing_mimes['rar'] = 'application/x-rar';
$existing_mimes['exe'] = 'application/octet-stream';
return $existing_mimes;
}
add_filter('upload_mimes', 'custom_upload_mimes');
保存并刷新页面即可上传对应配置类型的附件,其它类型的文件可自行搜索 MIME-TYPE 查找
配置 wp-config.php
打开WordPress 根目录,编辑 wp-config.php,在最后加入配置
php 代码:/** 允许上传任意类型附件 */
define('ALLOW_UNFILTERED_UPLOADS', true);
保持并清理 WordPress 缓存,刷新多媒体页面即可上传任意类型的附件
禁用Rss feed
在主题 functions.php 中加入以下代码,此代码会彻底禁用feed功能,包括 feed 地址
然后登陆进入WordPress 后台,随便打开一个页面,然后再把以下代码删除:flush\_rewrite\_rules();
php 代码:// 删除 wp_head 输入到模板中的feed地址链接
add_action( 'wp_head', 'wpse33072_wp_head', 1 );
function wpse33072_wp_head() {
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
}
foreach( array( 'rdf', 'rss', 'rss2', 'atom' ) as $feed ) {
add_action( 'do_feed_' . $feed, 'wpse33072_remove_feeds', 1 );
}
unset( $feed );
// 当执行 do_feed action 时重定向到首页
function wpse33072_remove_feeds() {
wp_redirect( home_url(), 302 );
exit();
}
// 删除feed的重定向规则
add_action( 'init', 'wpse33072_kill_feed_endpoint', 99 );
function wpse33072_kill_feed_endpoint() {
global $wp_rewrite;
$wp_rewrite->feeds = array();
// 运行一次后,记得删除下面的代码
flush_rewrite_rules();
}
解决设置https导致重定向次数过多无法访问
如果你采用 cloudflare 加速,建议使用端到端加密,配置好ssl证书既不会出现以下问题
网站设置https后显示重定向次数过多无法访问,或者后台无法正常登录,可尝试以下方法
打开根目录下文件 wp-config.php ,并加入下代码(注意必须添加到 if ( !defined(‘ABSPATH’) )
之前)
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
同时注意修改站点链接为https
获取评论真实ip
如果你的WP 使用了CDN导致评论无法获取用户真实ip,可尝试在wp-config.php文件中加入以下代码
php 代码:if( !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
$get_HTTP_X_FORWARDED_FOR = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = trim($get_HTTP_X_FORWARDED_FOR[0]);
}
关闭图片剪裁
如果我们通过 WordPress 后台-设置-媒体中设置图片大小都为 0,那么 WordPress 5.3 版本及以上就会只裁切 1536、2048、scaled 这三个默认尺寸,但 768、1536、2048 这三个尺寸正常情况几乎不会被用到
以下为禁用自动剪裁代码。加入主题 functions.php 即可
php 代码:add_filter('intermediate_image_sizes_advanced', '__return_false' ); //移除图片裁切
add_filter('big_image_size_threshold', '__return_false' ); //移除 scaled 裁切
以下代码是只禁止剪裁某一大小尺寸图片
php 代码:add_filter('big_image_size_threshold', '__return_false'); // 禁用缩放尺寸2560
//以下是禁用其他尺寸
function shapeSpace_disable_medium_large_images($sizes)
{
unset($sizes['medium_large']); // disable 768px size images
unset($sizes['1536x1536']); // disable 2x medium-large size
unset($sizes['2048x2048']); // disable 2x large size return $sizes;
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_large_images');
如果需要设置壁纸缩略图,和壁纸预览图,那么就可以在后台自己自定义裁剪大小,不需要可以设置 0
同时使用以下代码
php 代码:if(has_post_thumbnail())
{
the_post_thumbnail('thumbnail' ,array('alt'=> trim(strip_tags( $post->post_title )), 'title'=> trim(strip_tags( $post->post_title ))));
}
或者以下代码
php 代码:<?php
if ( has_post_thumbnail() )
{ // check if the post has a Post Thumbnail assigned to it.
$url = get_the_post_thumbnail_url($post->ID,'large');
echo '<img class="single-thumbnail" alt="'.get_the_title().'" title="'.get_the_title().'" src="'.$url.'">';
}
?>
啥玩意OωO
暂无点赞
你的博客是typecho,还会有WordPress优化,是之前从WordPress过来的吗?
嗯,之前用过WP
暂无点赞
暂无点赞