wordpress函数文件function.php常用优化代码

一笑奈何~~
9134
文章
1
评论
2016年10月26日13:42:20wordpress函数文件function.php常用优化代码已关闭评论 551 views 2597字阅读8分39秒
 小编上篇《wordpress函数文件function.php常用代码》中,罗列了一些主题制作时function.php里的一些常用优化代码。今天小编就分享一些在主题function.php里的一些具有功能性的代码。
 防止访客冒充博主发表评论
 /**
 *防止访客冒充博主发表评论*/
 function CheckEmailAndName(){
 global $wpdb;
 $comment_author = ( isset($_POST['author']) ) ? trim(strip_tags($_POST['author'])) : null;
 $comment_author_email = ( isset($_POST['email']) ) ? trim($_POST['email']) : null;
 if(!$comment_author || !$comment_author_email){
 return;
 }
 $result_set = $wpdb->get_results("SELECT display_name, user_email FROM $wpdb->users WHERE display_name = '" . $comment_author . "' OR user_email = '" . $comment_author_email . "'");
 if ($result_set) {
 if ($result_set[0]->display_name == $comment_author){
 err(__('警告: 您不能用这个昵称,因为这是博主的昵称!'));
 }else{
 err(__('警告: 您不能使用该邮箱,因为这是博主的邮箱!'));
 }
 fail($errorMessage);
 }
 }
 add_action('pre_comment_on_post', 'CheckEmailAndName');
 自定义头像
 // 自定义头像
 function fb_addgravatar( $avatar_defaults ) {
 $myavatar = get_bloginfo('template_directory') . '/images/gravatar.png'; //头像图片地址
 $avatar_defaults[$myavatar] = '自定义头像';
 return $avatar_defaults;
 }
 add_filter( 'avatar_defaults', 'fb_addgravatar' );
 只搜索文章,排除页面
 // 只搜索文章,排除页面
 add_filter('pre_get_posts','search_filter');
 function search_filter($query) {
 if ($query->is_search) {$query->set('post_type', 'post');}
 return $query;}
 新窗口打开评论链接
 // 新窗口打开评论链接
 function hu_popuplinks($text) {
 $text = preg_replace('/<a (.+?)>/i', "<a $1 target='_blank'>", $text);
 return $text;
 }
 add_filter('get_comment_author_link', 'hu_popuplinks', 6);
 反全英文垃圾评论
 // 反全英文垃圾评论
 function scp_comment_post( $incoming_comment ) {
 $pattern = '/[一-龥]/u';

if(!preg_match($pattern, $incoming_comment['comment_content'])) {
err( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');
清理菜单多余CSS CLASS
这是为了方便样式化菜单导航,因为wordpress默认会为菜单添加很多class和id,把这些清理后会更加方便的样式化导航菜单。
//清理菜单多余CSS CLASS
add_filter('nav_menu_css_class', 'clean_menu_class', 100, 1);
add_filter('nav_menu_item_id', 'clean_menu_class', 100, 1);
add_filter('page_css_class', 'clean_menu_class', 100, 1);
function clean_menu_class($var) {
return is_array($var) ? array_intersect($var, array('current-menu-parent','current-menu-item','dropdown','menu-item-has-children')) : '';//这个数组里输入排除的CSS
}
WordPress 后台回复评论添加提交快捷键
因为wordpess后台默认不自带[Ctrl+Enter]快捷回复评论的,而小编习惯了和前台一样打完字[Ctrl+Enter]。所以你懂的
/**
* WordPress 后台回复评论添加提交快捷键[Ctrl+Enter]
*/
function Bing_admin_comment_ctrlenter(){
echo '<script type="text/javascript">
jQuery(document).ready(function($){
$("textarea").keypress(function(e){
if(e.ctrlKey&&e.which==13||e.which==10){
$("#replybtn").click();
}
});
});
</script>';
};
add_action('admin_footer', 'Bing_admin_comment_ctrlenter');
最后,这些只是小编从一些主题中扒出来的,还有很多功能可以通过function.php函数来实现,求教万能的百度吧。

继续阅读