15+ 实用 WordPress 技巧
这些教程来自芒果的另一个博客 WPCN,原本打算收集一些 WordPress 奇技淫巧,不过精力有限维护不过来,予以关站处理。这里就将之前的文章综合整理下,供各位博友尽情收藏。
1、为文章页面自动添加描述信息
将以下代码粘贴到 functions.php 文件:
function create_meta_desc() { global $post; if (!is_single()) { return; } $meta = strip_tags($post->post_content); $meta = strip_shortcodes($post->post_content); $meta = str_replace(array("\n", "\r", "\t"), ' ', $meta); $meta = substr($meta, 0, 125); echo "<meta name='description' content='$meta' />"; } add_action('wp_head', 'create_meta_desc');
2、按文章分类设置固定链接
如何按文章分类设置固定链接?官方关于固定链接的文档说明了支持的各种固定连接参数:
%year% - 年
%monthnum% - 月
%day% - 日
%hour% - 时
%minute% - 分
%second% - 秒
%post_id% - 文章id
%postname% - 文章slug
%category% - 分类
%author% - 作者
所以按文章分类设置固定链接,只要使用 %category% 参数就可以了。
3、在每篇文章后自动插入自定义内容
只需将以下代码添加到 functions.php
文件,就能够在每篇文章后自动插入自定义内容。
function add_post_content($content) { if(!is_feed() && !is_home()) { $content .= '<p>This article is copyright © '.date('Y').' '.bloginfo('name').'</p>'; } return $content; } add_filter('the_content', 'add_post_content');
4、按评论数获取文章列表
WordPress 按评论数获取文章列表,使用以下代码来展现文章就可以了。
$pop = $wpdb->get_results("SELECT id, post_title, comment_count FROM {$wpdb->prefix}posts WHERE post_type='post' ORDER BY comment_count DESC LIMIT 10"); <ul> foreach($pop as $post) : ?> <li> <?php echo $post->post_title; ?> </li> <?php endforeach; ?> </ul>
5、无插件实现简单的 WordPress 分页功能
默认情况下,WordPress 对分页的支持非常简单,通过稍微复杂的代码就可以弥补这个不足。这个方法已经用在芒果小站的 M2 主题上咯!
将以下代码粘贴到你想显示分页的位置:
global $wp_query; $total = $wp_query->max_num_pages; // only bother with the rest if we have more than 1 page! if ( $total > 1 ) { // get the current page if ( !$current_page = get_query_var('paged') ) $current_page = 1; // structure of "format" depends on whether we're using pretty permalinks $format = empty( get_option('permalink_structure') ) ? '&page=%#%' : 'page/%#%/'; echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => $format, 'current' => $current_page, 'total' => $total, 'mid_size' => 4, 'type' => 'list' )); }
6、防止 WordPress 自动压缩图片
WordPress 默认会在上传 jpg 图片时自动压缩。这有利于节省贷款,减少加载时间。假如你是个摄影爱好者,热衷于在博客上展现摄影作品的话,高质量的图片就尤其重要了,将以下代码添加到 functions.php
文件,快速禁用图片自动压缩。
add_filter('jpeg_quality', function($arg){return 100;});
7、为所有的链接添加 target=”_blank” 属性
将下面代码添加到 functions.php
文件,可以为 WordPress 博客中所有的链接添加 target=”_blank” 属性。
function autoblank($text) { $return = str_replace('<a', '<a target="_blank"', $text); return $return; } add_filter('the_content', 'autoblank');
8、自动替换 WordPress 文章中的字符
比如你的博客名称换了,你希望老的文章里同样可以更换一些文案。使用以下代码可以轻松搞定,将其拷贝至 functions.php
文件即可。
function replace_text_wps($text){ $replace = array( // 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS' 'wordpress' => '<a href="#">wordpress</a>', 'excerpt' => '<a href="#">excerpt</a>', 'function' => '<a href="#">function</a>' ); $text = str_replace(array_keys($replace), $replace, $text); return $text; } add_filter('the_content', 'replace_text_wps'); add_filter('the_excerpt', 'replace_text_wps');
9、移除 WordPress 评论中的链接
WordPress 默认会把带有链接的评论自动加上链接。这也给垃圾评论提供了滋生的土壤。
移除这些评论链接很简单,把以下代码贴到 functions.php 文件就可以了。
remove_filter('comment_text', 'make_clickable', 9);
10、WordPress 内容更新自动通知功能
想要在博客内容更新时通知所有注册会员,可以在 functions.php 文件中添加以下代码:
function email_members($post_ID) { global $wpdb; $usersarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;"); $users = implode(",", $usersarray); mail($users, "您关注的博客《芒果》有更新", '<a href="http://www.mangguo.org">点此查看该博客</a>'); return $post_ID; } add_action('publish_post', 'email_members');
这样做行是行,但是可能数据量大时效率会有点低下。
11、禁止 WordPress 自动保存文章
要禁用 WordPress 的自动保存功能,请编辑 functions.php
文件并添加以下代码:
function disableAutoSave(){ wp_deregister_script('autosave'); } add_action( 'wp_print_scripts', 'disableAutoSave' );
12、创建自定义的 WordPress 数据库错误页面
将以下代码另存为 db-error.php 并且上传到 wp-content 目录,一旦发生数据库错误,WordPress 会自动使用该文件。
<?php // custom WordPress database error page header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); // 1 hour = 3600 seconds // If you wish to email yourself upon an error // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching"); ?> <!DOCTYPE HTML> <html> <head> <title>Database Error</title> <style> body { padding: 20px; background: red; color: white; font-size: 60px; } </style> </head> <body> You got problems. </body> </html>
13、从 WordPress 管理员面板中移除菜单项
如果你想从 WordPress 管理员面板中移除菜单项,这段代码非常有用。通过它你可以隐藏不必要的菜单项,比如“插件”、“设置”等。将以下代码粘贴到 functions.php
文件即可。
function wps_admin_bar() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); $wp_admin_bar->remove_menu('about'); $wp_admin_bar->remove_menu('wporg'); $wp_admin_bar->remove_menu('documentation'); $wp_admin_bar->remove_menu('support-forums'); $wp_admin_bar->remove_menu('feedback'); $wp_admin_bar->remove_menu('view-site'); } add_action( 'wp_before_admin_bar_render', 'wps_admin_bar' );
14、更改 WordPress 管理员面板底部文字
更改管理员面板底部文字非常简单。将以下代码中的示例文字替换为你想要的,并拷贝以下代码至 functions.php
文件。
function remove_footer_admin () { echo "我的代码"; } add_filter('admin_footer_text', 'remove_footer_admin');
15、为 WordPress 文章自动生成 QR 二维码
将以下代码拷贝到 single.php
文件中,放置于你想要显示二维码的地方:
<img src="http://api.qrserver.com/v1/create-qr-code/?size=100x100&data=<?php the_permalink(); ?>" alt="QR: <?php the_title(); ?>"/> 原文:http://www.mangguo.org/sunflower-bible-15-wordpress-hacks/
建议继续学习:
- WordPress评论翻页造成404页面的解决方案 (阅读:8033)
- WordPress插件开发 -- 在插件使用数据库存储数据 (阅读:5624)
- WordPress安全建议 (阅读:5362)
- WordPress插件开发--获知文章状态变化 (阅读:4568)
- WordPress数据字典 (阅读:4183)
- SEO:wordpress页面标记优化 (阅读:3624)
- WordPress模板的image.php (阅读:3633)
- WordPress重定向漏洞 (阅读:3202)
- wordpress博客优化12条 (阅读:2924)
- SEO:wordpress相同内容网页优化 (阅读:2931)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:simondai 来源: 流金岁月
- 标签: WordPress
- 发布时间:2012-08-07 13:41:08
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [52] android 开发入门
- [52] Go Reflect 性能
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑