15+ 实用 WordPress 技巧
标签: 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("[email protected]", "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文章内插入onclick [2012-03-04 17:44:42]
- WordPress评论翻页造成404页面的解决方案 [2011-05-17 08:51:09]
- WordPress是怎么赢的? [2011-02-22 23:23:36]
- WordPress模板的image.php [2010-09-28 09:19:07]
- 简单好用的土办法抗击洋鬼子对wordpress系统的广告灌入 [2010-08-23 22:07:30]
- WordPress 烦人的 revision 和 auto-draft [2010-07-20 23:10:26]
- WordPress重定向漏洞 [2010-07-18 23:37:32]
- WordPress数据字典 [2010-05-23 21:43:07]
- 网站被挂马 [2010-05-05 13:41:58]
- SEO:wordpress相同内容网页优化 [2010-03-09 09:17:06]
- SEO:wordpress页面标记优化 [2010-03-09 09:16:05]
- wordpress博客优化12条 [2010-03-08 23:15:03]
- WordPress英文引号问题的解决办法 [2010-01-10 13:32:00]