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

栏目:建站教程
来源:
标签:wordpress
时间:2022-06-23

晚上好!当前时间为
目前距离2023年春节还有
TOP