2012-11-29 |   |  wordpress技巧

使用 wordpress, 了解一下 Action hooks 和 filters 是非常有用的, 这种机制, 可以让你在不改变核心文件的基础上, 添加或者删除一些功能. 而不需要编辑代码! 因为这些功能已经内建, 你做的只需要按照你的需要调用或者过滤掉. 其实这些代码很多朋友都知道, 重华只是在此记录一下, 以备不时之需. 如需更进一步了解 Action,Hook 和 Filter 请访问官方页面.

下面是 10 个非常有用的技巧:


阻止自动压缩图像

在你使用 wordpress 后台上传图片的时候,wordpress 默认会把你的图片压缩, 这么做, 会节约你的空间和带宽, 但是如果你不需要这种压缩, 比如你的站点是专门展示摄影或者艺术图片, 你可能会需要显示最高清晰度的图片, 这个时候你就需要禁用自动图片压缩了!

将下面的代码加到你的 functions.php 文件中, 保存以便禁用自动压缩

add_filter('jpeg_quality', function($arg){return 100;});

原文:http://www.wprecipes.com/prevent-wordpress-to-compress-your-jpg-images


更改所有超链接为在新窗口打开

target="blank"的意思就是在新窗口或者新的标签页打开链接, 重华认为这么做还是多少有点用处的, 否则你的读者点击链接后, 也就自动关闭了你的页面, 而让链接在新窗口打开, 对双方都没有影响.

将下面的代码加到你的 functions.php 文件中

function autoblank($text) {
	$return = str_replace('<a', '<a target="_blank"', $text);
	return $return;
}
add_filter('the_content', 'autoblank');

原文:http://www.catswhocode.com/blog/snippets/add-target_blank-on-all-link


添加额外的个人联系方式

默认情况下后台只能设置电子邮件, 网站,AIM 和雅虎通等等, 当前最流行的 twitter 和 facebook 却不在其列, 国内的 QQ, 新浪微博也没有, 但是你可以很方便的随意添加任何你想添加的联系方式. 虽然重华一直认为这些设置根本就没什么用处.

下面仅仅是 twitter 和 facebook 的示例, 你可以按照格式自己添加其他的联系方式.

function my_user_contactmethods($user_contactmethods){
  $user_contactmethods['twitter'] = 'Twitter Username';
  $user_contactmethods['facebook'] = 'Facebook Username';

  return $user_contactmethods;
}

add_filter('user_contactmethods', 'my_user_contactmethods');

原文:http://wp.tutsplus.com/tutorials/quick-tip-add-extra-contact-methods-to-user-profiles/


移除"Read more"跳转

默认在首页或者是存档, 目录页面, 将会在文章截断处显示"Read more"的跳转链接, 但是一般情况下你点击文章的标题连接也能达到同样的效果, 所以你可以直接去除这个链接.

function wdc_no_more_jumping($post) {
     return '<a href="'.get_permalink($post->ID).'" class="read-more">'.'Continue Reading'.'</a>';
}
add_filter('excerpt_more', 'wdc_no_more_jumping');

原文:http://wpshout.com/wordpress-functions-php/


自动启用嵌套评论

貌似现在大多数主题都是支持嵌套评论的, 但是如果万一你使用的主题不支持嵌套评论, 也可以手工改造一下.

function enable_threaded_comments(){
 if (!is_admin()) {
  if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1))
   wp_enqueue_script('comment-reply');
  }
}

add_action('get_header', 'enable_threaded_comments');

原文:http://wpshout.com/wordpress-functions-php/


在管理员区域显示紧急消息

在你自定义主题或者插件的时候, 你可能会需要通知用户有重要的事情, 比如正在升级. 你需要用户更新设置或者检查他们的设置, 那么下面的代码会实现这个效果.

function showMessage($message, $errormsg = false){
	if ($errormsg) {
		echo '<div id="message" class="error">';
	} else {
		echo '<div id="message" class="updated fade">';
	}

	echo "<p><strong>$message</strong></p></div>";
}  

function showAdminMessages() {
    showMessage("You need to upgrade your database as soon as possible...", true);

    if (user_can('manage_options') {
       showMessage("Hello admins!");
    }
}

add_action('admin_notices', 'showAdminMessages'); 

原文:http://www.wpdoctors.co.uk/


添加缩略图到 RSS

在文章中显示缩略图, 很多站点都在使用, 但是在 RSS 中是不能显示的, 无疑这对用户来说无法得到和网站相同的体验. 下面这段代码就是让你的网站缩略图在 RSS 中同样能够显示. 需要注意的是: 你的主题必须支持缩略图.

function cwc_rss_post_thumbnail($content) {
    global $post;
    if(has_post_thumbnail($post->ID)) {
        $content = '<p>' . get_the_post_thumbnail($post->ID) .
        '</p>' . get_the_content();
    }

    return $content;
}
add_filter('the_excerpt_rss', 'cwc_rss_post_thumbnail');
add_filter('the_content_feed', 'cwc_rss_post_thumbnail');

原文:http://snipplr.com/view.php?codeview&id=56180


移除评论区的超链接

一些垃圾评论会在评论中留下大量的链接, 一来很不雅, 而且对 SEO 也不好, 下面的代码就是移除所有的链接, 当然也包括有用的链接, 除非你真的想, 我还是建议在后台手工甄别.

remove_filter('comment_text', 'make_clickable', 9);

发表评论

电子邮件地址不会被公开。 必填项已用*标注