IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

15+ 实用 WordPress 技巧

流金岁月 2012-08-07 13:41:08 累计浏览 2,151 次
本机暂存

这些教程来自芒果的另一个博客 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 &copy; '.date('Y').'&nbsp;'.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/

同分类推荐文章

  1. 科技爱好者周刊(第 401 期):如何赚到10亿美元 (2026-06-26 08:05:38)
  2. 如何做决策 - 从 Go 的一个 issue 说起 (2026-06-26 08:00:00)
  3. Seven Player:Windows上播放115网盘视频的增强工具 (2026-06-09 00:06:47)

查看更多 开发者 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,270)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,150)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,791)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  7. Redis消息队列的若干实现方式 (累计阅读 12,088)
  8. 到底什么是MVC? (累计阅读 11,870)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,710)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,488)