WordPress functions.php功能实现代码
建站教程 阅读以下设置均是在当前主题 functions.php 文件中添加的,添加前请备份源文件;
修改WordPress后台登录页面中LOGO的网址
WordPress后台登录页面中包含有一个指向wordpress.org的Logo图片。如果你使用WordPress来创建企业网站或者电子商务网站,那么将Logo的地址换成自己的网站,会显得更加专业一些;也可以让你的个人博客更酷。
本教程无需wordpress插件,你所需要做的非常简单。在你所使用的wordpress主题目录中,找到 functions.php 文件,打开,并将如下代码复制到其中:
//修改后台登陆页面LOGO链接
function custom_loginlogo_url($url) {
return 'http://niujc.com';
}
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
注意:别忘了把这里的 niujc.com 换成你自己的网址哦。
纯代码去除WordPress后台仪表盘顶部LOGO
如何去除wordpress后台顶部的logo(后台仪表盘的logo,并非登录页面的logo)呢?直接复制下面的代码,粘贴到你当前wordpress主题的functions.php文件中即可。
//去除后台LOGO
function _admin_bar_remove() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
}
add_action('wp_before_admin_bar_render', '_admin_bar_remove', 0);
这样后台logo就没有了。
修改后台登录地址:在当前主题 functions.php 文件中添加如下代码,登录地址就是 wp-login.php?word=press 否则跳转至127.0.0.1
//后台登录地址
add_action('login_enqueue_scripts','login_protection');
functionlogin_protection(){
if($_GET['word']!='press')header('Location:http://127.0.0.1/');}
让 WordPress 文章的网址URL自动生成超链接
//让WordPress文章的网址URL自动生成超链接
add_filter('the_content','make_clickable');
移除Wordpress的Emojo表情功能
//移除Wordpress的Emojo
functiondisable_emojis(){
remove_action('wp_head','print_emoji_detection_script',7);
remove_action('admin_print_scripts','print_emoji_detection_script');
remove_action('wp_print_styles','print_emoji_styles');
remove_action('admin_print_styles','print_emoji_styles');
remove_filter('the_content_feed','wp_staticize_emoji');
remove_filter('comment_text_rss','wp_staticize_emoji');
remove_filter('wp_mail','wp_staticize_emoji_for_email');
add_filter('tiny_mce_plugins','disable_emojis_tinymce');
}
add_action('init','disable_emojis');
WordPress文章自动首行缩进
//文章首行缩进
functionBing_text_indent($text){
$return=str_replace('
return$return;}
add_filter('the_content','Bing_text_indent');
WordPress移除/修改标题前的“私密”和“密码保护”
//移除/修改标题前的“私密”和“密码保护”
add_filter('private_title_format','wpdaxue_private_title_format');
add_filter('protected_title_format','wpdaxue_private_title_format');
functionwpdaxue_private_title_format($format){return'%s';}
WordPress搜索页伪静态
//搜索页伪静态
functiontongleer_search_url_rewrite(){
if(is_search()&&!empty($_GET['s'])){
wp_redirect(home_url("/search/").urlencode(get_query_var('s')));
exit();
}
}
add_action('template_redirect','tongleer_search_url_rewrite');
//在.htaccess文件添加伪静态规则
RewriteCond%{QUERY_STRING}\\?s=([^&]+)[NC]
RewriteRule^$/search/%1/?[NC,R,L]
关闭WordPress更新提示 - 将以下代码添加配置文件 wp-config.php 中
define('DISALLOW_FILE_MODS',true);//禁用所有插件和主题更新
wp-config.php
define('WP_POST_REVISIONS',false);//禁用历史修订版本
define('AUTOSAVE_INTERVAL',false);//自动保存时间设置为一天
define('DISALLOW_FILE_MODS',true);//禁用所有插件和主题更新
多说替换Gravatar头像
//多说替换Gravatar头像
functionmytheme_get_avatar($avatar){
$avatar=preg_replace("/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar);
return$avatar;
}
add_filter('get_avatar','mytheme_get_avatar');
WordPress 禁止多个人登录同一用户帐号
//Wordpress禁止多个人登录同一用户帐号
functionpcl_user_has_concurrent_sessions(){
return(is_user_logged_in()&&count(wp_get_all_sessions())>1);
}
//用户当前会话数组
functionpcl_get_current_session(){
$sessions=WP_Session_Tokens::get_instance(get_current_user_id());
return$sessions->get(wp_get_session_token());
}
//如果用户会话更新则销毁其他会话
functionpcl_disallow_account_sharing(){
if(!pcl_user_has_concurrent_sessions()){
return;
}
$newest=max(wp_list_pluck(wp_get_all_sessions(),'login'));
$session=pcl_get_current_session();
if($session['login']===$newest){
wp_destroy_other_sessions();
}else{
wp_destroy_current_session();
}
}
add_action('init','pcl_disallow_account_sharing');
WordPress 发布文章和页面时 添加确认对话框
//为WordPress文章发布按钮添加确认对话框
$c_message='确定是否发布?';
functionconfirm_publish(){
global$c_message;
echo'';
}
add_action('admin_footer','confirm_publish');
WordPress上传文件自动重命名;推荐两段在上传媒体文件时自动重命名的代码。
按时间重命名
上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20161023122222222.jpg”
//WordPress上传文件重命名
function git_upload_filter($file) {
$time = date("YmdHis");
$file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'git_upload_filter');
用MD5加密生成数字并重命名
名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位。
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);
开启WordPress维护模式
在您的当前主题的function.php中加入以下代码:
// 网站维扩护503代码
function wp_site_weifu(){
if(!current_user_can('edit_themes') || !is_user_logged_in()){
wp_die('XX 网站现在正在维护中,程序员正在疯狂加班,您便您能尽快访问,给您带来不便,敬请谅解', '估计2个小时后您就能正常打开,请您在2小时之后再来', array('response' =>'503'));
}
}
add_action('get_header', 'wp_site_weifu');
// 网站维扩护503代码结束
当您的维护工作结束时,不要忘记将上面的代码删除。
防止邮箱采集器收集文章和评论中的Email地址
/** * WordPress防止邮箱采集器收集文章和评论中的Email地址 * http://www.ilxtx.com/automatically-hide-email-adresses-from-spambots-on-wordpress.html */ function lxtx_security_remove_emails($content) { $pattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i'; $fix = preg_replace_callback($pattern, "lxtx_security_remove_emails_logic", $content); return $fix; } function lxtx_security_remove_emails_logic($result) { return antispambot($result[1]); } add_filter( 'the_content', 'lxtx_security_remove_emails', 20 ); add_filter( 'comment_text', 'lxtx_security_remove_emails', 20 );
评论内容字数限制
add_filter( 'preprocess_comment', 'blogginglove_comment_limit' ); function blogginglove_comment_limit($comment) { if ( strlen( $comment['comment_content'] ) > 4000 ) { wp_die('评论字数过多,请删减一些,谢谢合作~'); } if ( strlen( $comment['comment_content'] ) < 50 ) { wp_die('评论内容果断,请再写一点吧~'); } return $comment; }
本文链接:https://niujc.com/com/1359999.html