如果你的 WordPress 博客是开放注册,并且你想在注册界面给用户做些自定义信息提示,你可以在当前主题的 functions.php 文件加入以下代码: add_action(‘register_form’, ‘wpjam_register_message’); function wpjam_register_message() { $custom_message = ‘ <div style=”margin:10px 0;border:1px solid #e5e5e5;padding:10px”> <p style=”margin:5px 0;”> 欢迎注册我爱水煮鱼。 </p> </div>’; echo $custom_message; } 标签:WordPress 技巧
Wordpress主题技巧
WordPress 发布 3.4.2 安全更新
在 WordPress 3.4 版被下载了 1500 多万次之后,WordPress 发布了 3.4.2 安全更新,主要修正以下问题: 修正 WordPress 后台在旧版本浏览器的兼容问题。 修正主题预览和截图显示的问题。 改进在可视化编辑器下插件兼容性。 解决在一些分类下永久链接结构的分页问题。 避免 OEmbed 提供和引用跟踪的错误。 阻止大小不合适头部图片的上传。 另外 3.4.2 这个版还修复了一些安全问题,并包含了一些安全加固,这些漏洞包括潜在的用户越权,和多站点安装下不受信任用户的 bug。 下载:WordPress 快速安装指南:使用 SSH 安装,升级和迁移 WordPress 博客。 标签:WordPress

5个最佳明星时尚八卦 WordPress 主题
如果你喜欢娱乐圈的是是非非,并且想建立一个关于明星是非八卦的网站,或者想为自己喜欢的明星创建博客,甚至是有些明星为自己创建博客,WordPress 功能强大,易用性强等等原因使得使用 WordPress 来搭建是一个最佳的选择。但是在开始之前需要选择一个适合明星时尚和八卦休闲的 WordPress 主题,今天就给大家推荐几款这方面的 WordPress 主题。 1. CelebrityPress WordPress Theme (by Gorilla Themes) CelebrityPress 这个杂志型的主题非常适合那些想创建和姓名,八卦,音乐,电影等相关的网站,这个主题功能完整,有视频播放器,高效的主题后台设置和管理以及广告管理等。 详细介绍 | 演示 2. Gossip City Gossip City 是一个免费的主题,三栏,非常适合创建一个简单的明星八卦博客。 Download | 演示 3. Blog Magazine Theme deZine (by ThemeShift) deZine 是一个非常适合创建杂志类型的 WordPress 主题,这个主题非常容易定制,在 footer 和 侧边栏都有 Widget 可以设置,非常方便,建立一个明星八卦博客,这个主题也是非常适合的。 详细介绍 | 演示 4. Phiyaz Entertaintment & Community Theme Phiyaz […]

限制登录尝试次数的 WordPress 插件:Limit Login Attempts
默认情况下,无论是通过登录页面,或者通过发送特殊 Cookie 信息的方式,WordPress 允许无限次的登录尝试,这样是非常不安全,会让密码被暴力破解。Limit Login Attempts 限制登录尝试的次数来防止暴力破解,增强 WordPress 的安全系数。 Limit Login Attempts 插件特点: 设定每个登录 IP 的重复尝试次数; 设定使用 Cookie 验证方式尝试次数; 警告用户剩余登录尝试次数和锁定时间; 可选的电子邮件通知功能; 处理反向代理服务器,防止代理攻击; 这个插件还允许通过 Filter 设置白名单。 下载:Limit Login Attempts 标签:WordPress 插件
WordPress 技巧:通过 ID 快速获取日志内容
如果已经知道 ID,我们一般可以通过下面的代码获取日志内容: $post = get_post($post_id); $post_content = $post->post_cotent; 其实我们可以通过 get_post_field 这个函数更简单更快速的方式获取日志内容: $post_content = get_post_field(‘post_content’, $post_id); 实际上这个函数还可以用来快速获取日志的其他字段,详细可以参考 get_post_field 函数的 codex 页面。 标签:WordPress 技巧
使用 .htaccess 提高 WordPress 的安全性和可用性
.htaccess 是一个特殊的文件,它能改变服务器的设置,比如它可以定制 404 错误页面。 .htaccess 看起来很复杂,其实并不难,我们可以把它认为是由一些简单命令或者用法说明组成的文本文件,不过它却能极大的提高站点的安全性。 1. 保护 .htaccess 自身的安全性 阻止通过读取和写入 .htaceess 来更改服务器安全性的设置。 <files .htaccess> order allow,deny deny from all </files> 2. 隐藏服务器的数字签名 隐藏服务器的数字签名之后,入侵者将更难找到安全漏洞,因为他们不知道网站背后的服务器是什么。 ServerSignature Off 3. 限制上传文件的大小 这个能够帮助阻止 DoS 攻击(用户通过上传巨大的文件来冲垮服务器)并且能够节约带宽。 LimitRequestBody 10240000 # limit file uploads to 10mb 4. 停止 mod_security 过滤器 这个设置是可选的,并且要特别小心处理。这些指令告诉服务器不要使用 mod_security 过滤器,因为 mod_security 过滤器不允许用户发表含有这些单词 “curl”,“lynx” 或者 “wget” 等等单词的文章。这个看起来有点琐碎,但是这个让一些站点头痛,因为这些单词几乎那些站点每天都会用到。 SecFilterInheritance Off 5. […]
WordPress 技巧:如何修改 WordPress 数据库前缀
我们知道 WordPress 的数据库表,可以设置前缀,默认是 wp_,很多同学也就默认用了 wp_,如果某种原因(比如提高安全性)要修改的 WordPress 数据的前缀,我们应该怎么做? 开始之前 修改数据是一件风险很高的工作,开始之前必然就是做好数据库备份,也可以把博客设置为维护状态。 在 wp-config.php 修改数据库前缀 打开你的 wp-config.php 文件,把数据库前缀 wp_ 改成你想要的前缀,比如 wpjam_。 $table_prefix = ‘wpjam_’; 修改数据表名字 打开 PHPMySQL,找到你的数据库,然后执行以下 SQL,把所有数据库表前缀从 wp_ 改成 wpjam_。 RENAME table `wp_commentmeta` TO `wpjam_commentmeta`; RENAME table `wp_comments` TO `wpjam_comments`; RENAME table `wp_links` TO `wpjam_links`; RENAME table `wp_options` TO `wpjam_options`; RENAME table `wp_postmeta` TO `wpjam_postmeta`; RENAME table […]
WordPress 技巧:在特定日志类型中进行搜索
如果你的 WordPress 使用了多个日志类型(Post Type),并且只想在搜索结果中只显示特定的日志类型,可以在 functions.php 文件中添加如下代码。 function wpjam_search_filter($query) { if ($query->is_search) { $query->set(‘post_type’, ‘your_post_type’); } return $query; } add_filter(‘pre_get_posts’,’wpjam_search_filter’); 注意需要将第三行的 your_post_type 改成你要搜索的日志类型的名称。 标签:WordPress 技巧
安装 WordPress 后进行的优化和调整
安装好 WordPress 之后,在开始写博客之前,我们需要对 WordPress 进行一些基本的优化和调整,下面是我在安装好 WordPress 之后进行的最基本的优化和调整: 1. 更改永久链接 WordPress 默认的永久链接是这样的 http://blog.wpjam.com/?p=1282,这样的永久链接只是说这是 ID 为 1282 的日志,并没有其他信息,如果把链接修改成 http://blog.wpjam.com/article/after-wordpress-is-installed/,就让人一看到就知道这个链接是最初是在 2008 年 3月 25 号发布的,讲解安装 WordPress 之后应该做的事情,并且这样对搜索引擎会更加友好。 更改永久链接,到 WordPress 后台 > 选项 > 永久链接 设置即可。但是伪静态链接需要你的主机支持,否则会在你域名之后有出现 index.php,虽然 Windows 主机也可以实现上面的永久链接,但是个人还是推荐你尽量使用 Linux 服务器,一般的 Linux 服务器都支持 mod_writer,比如我现在使用 (mt) Media Temple 主机(mt 的详细介绍)。 2. 更换默认主题 选择一个更专业或者适合自己个性的主题,会让大家感觉你是认真在写博客,是的,写博客需要专业的态度,不仅仅在内容上,而且包括博客的主题的表现上。现在有成千上万的主题可以下载,你可以从 http://wordpress.org/extend/themes// 选择自己喜欢的主题,如果你要更加彰显自己的个性,你也可以自己设计,或者找人设计,正如你所知,本站长期承接 WordPress 相关的项目,显然包括 WordPress 主题设计,以及 PSD2WPtheme,详细你可以查看 […]
WordPress 技巧:给 WordPress Page 添加摘要输入框
SEO 一个方面就是给页面添加 Meta Description,虽然添加 Description 不会更改页面的权重,但是在 Google 等现代搜索引擎的搜索结果页面会直接使用 Description 来作为搜索结果,这样显示得更加友好,用户也能一眼就知道博客文章或者页面主要内容是什么,使得用户更加容易点击你的页面,增加博客的流量。 我一般是使用 WordPress 的摘要直接作为 Meta Description 进行 SEO,但是默认情况下 WordPress Page 编辑页面没有摘要(Excerpt)输入框,所以对 WordPress 进行 SEO 的时候比较麻烦。 这个时候我们就可以通过以下代码给我 WordPress Page 添加摘要输入框: add_action( ‘admin_menu’, ‘my_page_excerpt_meta_box’ ); function my_page_excerpt_meta_box() { add_meta_box( ‘postexcerpt’, __(‘Excerpt’), ‘post_excerpt_meta_box’, ‘page’, ‘normal’, ‘core’ ); } 只需将以上的代码添加到当前主题的 functions.php 文件即可。当然你也可以添加一个插件头,作为一个单独插件使用。这样在 WordPress 后台编辑 Page 的时候和编辑 Post 一样有摘要输入框了。 标签:SEO WordPress […]
WordPress 是怎么盈利的
我们都知道 WordPress 是一个通过社区管理的开源程序,人人都可以参与,程序本身是免费提供的。那么 WordPress 背后商业化运作的 Automattic 公司是怎么盈利的呢?下面是 Automattic 目前盈利的一些方式,我相信它们的盈利模式可以给我们国内一些发布开源程序的公司一些启迪和参考: 1. Blog Hosting(博客主机服务) WordPree 给如 Om Malik, All Things D 等这些大公司以每个月 500 美元提供博客主机服务,因为使用 WordPress.com 基础服务架构来托管 WordPress 博客,所以性能肯定会比其他虚拟主机要好的很多,这个属于 WordPress.com 的 VIP 帐号,也并不是每个人都能申请到的。 2. Google AdSense WordPress.com 上免费博客可能有时候会有 Google Adsense 的广告,我相信你和我一样都没有见过,因为出现广告需要满足以下几个条件: 博客访问用户不是使用 Firefox 浏览器。 如果访问用户注册了 WordPress.com 帐号,并且没有登录。 访问用户不是来自一个 WordPress.com 其他博客,所以从 abc.wordpress.com 到 xyz.wordpress.com 的用户肯定不会看到广告了。 虽然需要那么多个条件才显示广告,但是 WordPress.com 上产生的广告费还是非常显著的,因为 WordPress.com […]

互联网上 1/6 的网站由 WordPress 创建
福布斯的文章 《互联网的母语》 中提到: 今天,WordPress支撑着互联网上1/6的网站,大约6,000万个网站,而且每天还新增10万个。这些网站借助云存储服务运行,每月吸引3.3亿访客浏览34亿页的内容。 使用 WordPress 建站已经越来越主流了,国外前 100 名博客半数使用 WordPress,你呢? 标签:WordPress
WordPress 技巧:在 Footer 载入 jQuery 代码
在 Footer 加载 Javascript 代码是最好的方式,但是 WordPress 总是在 head 加载 jQuery 代码,那么怎么在 Footer 加载 jQuery 代码呢? 在当前主题的 functions.php 函数中添加如下代码: function wpjam_load_jquery_in_footer( &$scripts) { if ( ! is_admin() ) $scripts->add_data( ‘jquery’, ‘group’, 1 ); } add_action( ‘wp_default_scripts’, ‘wpjam_load_jquery_in_footer’ ); 标签:WordPress 技巧

WordPress 技巧:给 WordPress 分配更多的内存
WordPress 的功能不断的增多,WordPress 运行所需的内存也不断增多,如果内存不够,你在 WordPress 操作的时候,就会碰到像这样的问题”Allowed memory size of xxxxxx bytes exhausted”(允许的内存 xxxx 字节已经用光了),这时候你需要给 WordPress 分配更多的内存。 默认情况下,WordPress 会尝试分配 32M 内存(在 settings.php 文件中设置),如果你服务器支持增加 PHP 内存限制,你可以通过在 wp-config.php 文件中给 WordPress 分配更多的内存。 // 更多内存 define(‘WP_MEMORY_LIMIT’, ’64M’); // 再次更多内存 define(‘WP_MEMORY_LIMIT’, ’96M’); // 非常不错的内存 define(‘WP_MEMORY_LIMIT’, ‘128M’); 你可以一步一步增加内存,如果没有出现空白,则运行良好,比如我爱水煮鱼就增加到 128M 内存。 我爱水煮鱼的内存和使用率 给 WordPress 分配更多的内存需要你使用的服务器支持,一般的虚拟主机都是不支持的,甚至有些虚拟主机把 PHP 允许的内存设置为 8M,所以这个也是我为什么一直在博客中让大家尽量使用 (mt) Media Temple 主机的原因,除了稳定之外,完全可以对服务器按照自己的想法设置。 标签:WordPress 技巧
WordPress 技巧:禁用 RSS Feed
现在通过 RSS 阅读的同学越来越少了,并且 RSS 还成为了一些垃圾站快速全文抄袭的方式,所以如果你想禁用 RSS Feed,可以在当前主题的 functions.php 文件中添加如下代码: function wpjam_disable_feed() { wp_die(__(‘<h1>本博客不再提供 Feed,请访问网站<a href=”‘.get_bloginfo(‘url’).'”>首页</a>!</h1>’)); } add_action(‘do_feed’, ‘wpjam_disable_feed’, 1); add_action(‘do_feed_rdf’, ‘wpjam_disable_feed’, 1); add_action(‘do_feed_rss’, ‘wpjam_disable_feed’, 1); add_action(‘do_feed_rss2’, ‘wpjam_disable_feed’, 1); add_action(‘do_feed_atom’, ‘wpjam_disable_feed’, 1); 标签:WordPress 技巧

WordPress 响应式付费主题:Smart Design
如你所见,简约、自然、大方,Smart Design 是 Kayo 发布的一款付费的响应式主题。响应式设计可以让网页自动适应更多终端,也可以有很精巧的布局,甚至会比传统网页的布局更加出色、更加灵活,并且它还可以在 PC、平板、手机等多终端上自动适应, Smart Design 也正是基于以上的理念设计的。 Smart Design 主题主要特色和功能 100% 前端响应式设计,让网页在 PC、平板、手机上都表现出色 完善的后台选项与界面,方便调整主题 多彩颜色,一次购买,红、橙、蓝、绿、灰五种颜色随你选择 —— 主题颜色看腻了没关系,进入后台马上换一个,要用就用自己喜欢的颜色! SEO 优化 支持 WordPress 文章格式功能,制作了 3 种文章格式 自带多种页面模板、侧边栏小工具、短代码样式 Ajax 文章翻页、Ajax 评论翻页、Ajax 提交评论,减轻服务器负担,且更能适应移动设备 集成评论邮件回复、图片延时加载、用户头像缓存、Lightbox 等功能 与众不同的用户体验,让你感受 Web 的魅力 该主题是付费主题,价格为 109.99 RMB,请到 WPJAM 应用商城 Smart Design 主题页面购买。 如果你是一个 WordPress 主题作者,想发布自己的付费主题到 WPJAM 应用商城销售,请联系 Denis。 标签:WordPress 主题
WordPress 插件:Use Google Libraries
前面介绍过 Google Hosted Libraries:Google 把一些非常流行的 JavaScript 框架放到 Google 的服务器上。这样大家来说可以充分利用 Google 的服务器资源,节省自己的网络带宽,更重要的是 Google 对这些框架进行了压缩,所以在使用 JavaScript 框架的时候速度方面有很大的提高。 现在有人开发出对应的 WordPress 插件:Use Google Libraries。它把 WordPress 中的 JavaScript 库用 Google Hosted Libraries 来替代。已达到加速和节省带宽的目的。当然该插件不会删除你 WordPress 中的 JavaScript 库,只是把引用时候改成 Google AJAX Libraries 的路径。 该插件使用非常简单,只需要上传激活即可。下载:WordPress Plugin: Google AJAX Libraries。 目前支持 JavaScript 库有: jQuery prototype script.aculo.us MooTools dojo 标签:CDN Google JavaScript WordPress 插件
WordPress 插件开发技巧:在上传目录下创建子目录
当你创建的 WordPress 插件需要自己的独立的上传目录的时候,可以在你的插件中添加如下代码,这样在插件激活的时候自动在 WordPress 上传目录(wp-content/uploads/)下创建自己独立的上传目录: register_activation_hook( __FILE__, ‘wpjam_plugin_activate’ ); function wpjam_plugin_activate() { $upload = wp_upload_dir(); $upload_dir = $upload[‘basedir’]; $upload_dir = $upload_dir . ‘/wpjam-files’; if (! is_dir($upload_dir)) { mkdir( $upload_dir, 0700 ); } } 标签:WordPress 技巧
WordPress 技巧:自动隐藏邮件地址防止垃圾邮件
垃圾邮件真的是防不胜防,前面我写过一个插件 Antispambot ShortCode,通过 ShortCode 的方式输入邮件地址实现隐藏邮件地址,不被机器收集,从而达到防止垃圾邮件的目的。不过这个方法还是有点不方便,输入邮件的时候需要试用 ShortCode 方式。今天就介绍一种新方法,在撰写日志的时候直接输入邮件地址,也会自动被隐藏。 下面的代码通过正则提取内容中的邮件地址,然后使用 WordPress 的 antispambot 函数隐藏 email 地址。 add_filter( ‘the_content’, ‘wpjam_hide_emails’, 99 ); add_filter( ‘widget_text’, ‘wpjam_hide_emails’, 99 ); function wpjam_hide_emails($content) { $pattern = ‘/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/i’; return preg_replace_callback($pattern, “wpjam_hide_emails_callback”, $content); } function wpjam_hide_emails_callback($match) { return antispambot($match[1]); } 只需要将以上代码复制到当前主题的 functions.php 文件中即可,或者直接下载我的 Antispambot ShortCode 插件,已经集成该功能。 标签:WordPress 技巧
WordPress 技巧:给外部链接自动添加 nofollow
在撰写日志的时候,经常会引用一些外部链接,如果你不想给这些外部链接传递权重,你需要给这些外部链接加上 rel=”nofollw” 属性,如果每个外部链接都需要手工添加,那么会非常麻烦,你可以在当前主题的 functions.php 中添加如下代码,它会给外部链接自动添加 nofollow。 add_filter(‘the_content’, ‘wpjam_auto_nofollow’); function wpjam_auto_nofollow($content) { return preg_replace_callback(‘/<a>]+/’, ‘wpjam_auto_nofollow_callback’, $content); } function wpjam_auto_nofollow_callback($matches) { $link = $matches[0]; $site_link = get_bloginfo(‘url’); if (strpos($link, ‘rel’) === false) { $link = preg_replace(“%(href=S(?!$site_link))%i”, ‘rel=”nofollow” $1’, $link); } elseif (preg_match(“%href=S(?!$site_link)%i”, $link)) { $link = preg_replace(‘/rel=S(?!nofollow)S*/i’, ‘rel=”nofollow”‘, $link); } return $link; } 当然给所有外部链接都加上 rel=”nofollw” 属性在 SEO […]

WordPress 文章目录插件更新到 2.0,并发布免费版
WordPress 文章目录插件更新到 2.0,新版本可以设置: 是否隐藏文章目录。 显示到第几级目录。 以及文章目录的位置(通过在日志中输入 [toc] 来实现定位)。 除此之外,WordPress 文章目录插件除了继续提供收费版之外,2.0 还新增了免费版,免费版和收费版的唯一区别就是免费版会有一个“Powered by TOC”的版权申明,如下图所示: 查看:WordPress 文章目录插件详细介绍。 下载免费版:WordPress 文章目录插件免费版。 购买收费版:WordPress 文章目录插件收费版。 标签:WordPress 插件
WordPress 技巧:不用插件实现 Pagenavi 功能
Pagenavi 是一个很好的功能,现在 WordPress 博客一般都是使用 WP-Pagenavi 插件来实现,其实 WordPress 现在已经自己支持 Pagenavi 功能了,只需要将下面简单的代码复制到当前主题的 functions.php 文件中,然后再相关的主题模板文件中使用 native_pagenavi() 函数就能实现 Pagenavi 的功能。 function native_pagenavi(){ global $wp_query, $wp_rewrite; $wp_query->query_vars[‘paged’] > 1 ? $current = $wp_query->query_vars[‘paged’] : $current = 1; $pagination = array( ‘base’ => @add_query_arg(‘page’,’%#%’), ‘format’ => ”, ‘total’ => $wp_query->max_num_pages, ‘current’ => $current, ‘prev_text’ => ‘« ‘, ‘next_text’ => ‘ »’ […]
WordPress 技巧:如何把时间显示成“xxx前”格式
在微博中,时间的格式都是显示成:20秒前,1小时前,3天前这样的格式,其实 WordPress 也有一个函数可以把时间显示成这样的格式,这个函数就是:human_time_diff,它有两个参数,一个是 $from,一个是 $to,就是比较的两个时间戳。 比如要日志的发表时间要改成: <?php echo human_time_diff(get_the_time(‘U’), current_time(‘timestamp’)) . ‘ ago’; ?> 而留言改成: <?php echo human_time_diff(get_comment_time(‘U’), current_time(‘timestamp’)) . ‘ ago’; ?> 标签:WordPress 技巧

WordPress 插件 WP Mail SMTP:彻底解决 WordPress 邮件无法收到或者进入垃圾箱的问题
前面我介绍了如何使用 PHPMailer 发送邮件,其实 WordPress 已经内置了 PHPMailer 这个 class,只是它没有使用 SMTP 的方式发邮件,而只是简单的使用了 Linux 的 mail 函数的方式,所以还是会产生 WordPress 发出的邮件,对方无法收到或者进入垃圾箱的问题。如果要让 WordPress 的 PHPMailer 也能采用 SMTP 方式发送邮件,我们需要安装 SMTP 相关的插件对 WordPress 进行简单的设置下。 WordPRess SMTP 的插件有很多,简单的试用之后:WP Mail SMTP 可以说是目前最好的一个,这个插件重新设定了 WordPress 的 wp_mail() 函数,使它能够试用 SMTP 的方式发送邮件,并且还提供了设置页面让你输入 SMTP 的详细信息: 指定发送的邮箱和名称 设置试用 SMTP 或者 mail() 函数来发送。 指定 SMTP 服务器地址。 指定 SMTP 服务器端口。 设置 SSL 还是 […]
WordPress 后台编辑常用的快捷键
WordPress 后台的在线可视化编辑器使用的是 TinyMCE,所以在 WordPress 后台编辑的时候,和 TinyMCE 一样也有键盘快捷键,掌握这些快捷键可以让我们在 WordPress 后台编辑文章的时候事半功倍,下面是我们常用的快捷键: 粗体: Alt+SHIFT+b 斜体: Alt+SHIFT+i 添加链接: Alt+SHIFT+a 引用: Alt+SHIFT+q 代码: Alt+SHIFT+c 添加 <!–more–>: Alt+SHIFT+t 无序列表 (ul): Alt+SHIFT+u 有序列表 (ol): Alt+SHIFT+o 列表元素 (li): Alt+SHIFT+l 高级编辑器: Alt+SHIFT+v 编辑 HTML: Alt+SHIFT+e 发布日志: Alt+SHIFT+p 填入修订文本: Alt+SHIFT+s 删除文本: Alt+SHIFT+d 缩进: Alt+SHIFT+w 回退: Alt+SHIFT+u 重做: Alt+SHIFT+y 居左: Alt+SHIFT+f 居中: Alt+SHIFT+c 居右: Alt+SHIFT+r 标签:WordPress […]
WordPress 技巧:提高 WordPress 搜索的相关性
实在扛不住 Google 自定义搜索的速度了,把我爱水煮鱼的搜索换回了 WordPress 自带的搜索,但是 WordPress 的默认搜索结果是按照文章的发布时间来排序的,这样的搜索结果的相关性并不强,应该让搜索结果按照内容相关性排序,而不是按照时间或者 ID,所以我们可以在当前主题的 functions.php 添加如下代码来增强 WordPress 搜索的相关性: add_filter(‘posts_orderby_request’, ‘wpjam_search_orderby_filter’); function wpjam_search_orderby_filter($orderby = ”){ if(is_search()){ global $wpdb; $keyword = $wpdb->prepare($_REQUEST[‘s’],”); return “((CASE WHEN {$wpdb->posts}.post_title LIKE ‘%{$keyword}%’ THEN 2 ELSE 0 END) + (CASE WHEN {$wpdb->posts}.post_content LIKE ‘%{$keyword}%’ THEN 1 ELSE 0 END)) DESC, {$wpdb->posts}.post_modified DESC, {$wpdb->posts}.ID ASC”; }else{ return $orderby; } […]

WordPress 3.5 发布:全新的多媒体管理功能
全新的多媒体管理 WordPress 3.5 版本发布,这个版本最大的改变就是一个全新的多媒体管理功能。一直以来,多媒体是 WordPress 系统的最弱的地方,所以 WordPress 开发团队听取了用户和社区多方的意见,对图片上传和相册管理功能都做出来改进,可以通过拖拽就能一次上传多张图片,并且图片的名称和属性的修改也更加方便,现在,创建相册也更见简洁,通过简单的拖拉图片顺序就可以整理相册。 Twenty Twelve WordPress 3.5 还新增了一个默认主题: Twenty Twelve(2012),这个主题设计得非常简洁,让你更加关注内容,并且 2012 还是一个移动优先的响应式的主题,可以适应多种终端的显示屏。 后台改进 WordPress 后台也进行了更新:新的欢迎页面和颜色选择器,设计风格也更加苹果风(如圆角按钮改成矩形圆角,不知会不会侵犯苹果的专利 ),支持 Retina 屏幕,链接管理默认被隐藏,对触摸屏也更加友好等等。 下载:WordPress 3.5 SSH 用户:使用 SSH 安装,升级和迁移 WordPress 博客 标签:WordPress
WordPress 技巧:禁用 XML-RPC 接口
在 WordPress 3.5 之前,XML-RPC 服务一直默认是的被禁用的,因为它会造成安全漏洞,比如垃圾留言和 Trackback Spam 等。但是 WordPress 3.5 版本的发布将改变这个设置。因为 WordPress 开发团队的努力,这一安全隐患被修正,所以 WordPress 索性默认将其开启,并且不在后台提供关闭选项(真流氓 )。 并且 WordPress 更新到 3.5 之后,数据库中的 “enable_xmlrpc” 选项字段也将被删除,这样即使你在之前把 XML-RPC 设置为关闭,到了 WordPress 3.5 之后,也将开启(非常流氓 )。 如果我们只是在 WordPress 后台写写博客,也用不到类似于 WLW 这样的客户端,其实 XML-RPC 这个服务真的没有必要,如果你还是想关闭的话,怎么办呢?在当前主题的 functions.php 文件添加如下一行代码即可: add_filter(‘xmlrpc_enabled’, ‘__return_false’); 另外因为 XML-RPC 的改进,和其服务默认开启之后,Atom publishing 得到开发者使用的机会越来越少,WordPress 也将其服务也从核心代码中删除,如果你要使用这个服务,你要通过插件的方式来激活了:Atom Publishing Protocol 标签:WordPress 技巧
屏蔽 WordPress 日志修订功能
WordPress 2.6 已经发布了。其中有个功能叫做日志修订,个人觉得对我完全没用,我用 WordPress 完全是用来写博客的,搞个日志修订功能,每个修订都会在 posts 表中插入一条记录,上次我写了一篇文章,多修改了几次,给我多插入10多个修订版本,汗死了。这样子我每片日志都有10多条记录在 posts 表中,那么到时候文章一多,不把表撑爆才怪,数据一多,查询肯定慢,WordPress 的效率已经很低了,不知道为什么还要出这样的东东。没办法只有取消掉。 原本准备开发一个插件屏蔽这个功能,后发现其实 WordPress 已经留了接口。在 wp-setting.php 中新增了一个变量 WP_POST_REVISIONS,把它设置为 false 就可以屏蔽 WordPress 日志修订功能。在 wp-config.php 添加的代码如下: define(‘WP_POST_REVISIONS’, false); 关于 WP_POST_REVISIONS 这个常量的详细设置为: true(默认)或者 -1:保存所有修订版本 false 或者 0:不保存任何版本(除了自动保存的版本) 大于 0 的整数 n:保存 n 个修订版本(+1 只保存自动保存版本),旧的版本将被删除。 标签:WordPress 技巧
WordPress 技巧:如何彻底关闭 Trackbacks
什么是 Trackbacks Trackbacks 是 Web 2.0 发展初期的产物,你在自己的博客引用别人的日志,那么在发表完日志之后,对方的博客就会自动在你所评论的日志评论区添加你的引用信息,其他人就可以很清楚看到你的引用,并且方便地点击就可以来看你的文章,所以 Trackbacks 就成为了博客之间一种通讯的机制和协议,可以看到别人是如何看待自己的日志。 虽然 WordPress 这样的开源程序还使用 Pingbacks 机制,使用户不必输入 Trackbacks 地址就能实现 Trackbacks,并且 Trackbacks 功能还能让你看到谁链接了你的博客(当然也包括抄袭者),但是 Trackbacks 实际用途并没有按照当初设计那样被要用于交流,更多的是 Spammer 滥用,Spamer 利用只要知道日志的 Trackbacks 地址就可以发送 Trackbacks 这一漏洞,频发 Trackbacks,并且 Akismet 也经常漏掉,如果不慎其烦的话,就可以关闭 WordPress 的 Trackbacks。 如何彻底关闭 Trackbacks 关闭 Trackbacks 首先需要到 WordPress 后台,Setting(设置)-> Discussion(评论设置)中,把 Allow link notifications from other blogs (pingbacks and trackbacks.) (允许接受来自其它 Blog 的链接通告(包括引用和通告) )这一项取消。 […]

WordPress 技巧:自定义上传路径和生成文件的 URL 地址
WordPress 3.5 一个最大的改变就是更加简洁化,把一些用户不常使用的设置去掉或者隐藏了,比如后台的媒体(Media)设置页面隐藏上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定就被隐藏了。如果你还要进行设置这两个选项,现在只能在 options.php 中进行设置,或者使用 UPLOADS 常量,也可以使用 upload_dir 这个 filter。下面分别介绍下这三种方法: 1. options.php 中设置 直接访问:http://site_url/wp-admin/options.php,然后找到下面选项,将其设置为你所需的参数。 2. 定义 UPLOADS 常量 在 wp-config.php 文件中定义 UPLOADS 这个常量: define(‘UPLOADS’,’my-uploads’); 这个方法有个不好的地方:只能指定上传的相对目录,生成文件的 URL 地址不能使用子域名,这样在做静态文件 CDN 加速的时候就不是很方便。 3. 使用 upload_dir filter 这个方法,效果其实和第一个方法基本一致: add_filter( ‘upload_dir’, ‘wpjam_custom_upload_dir’ ); function wpjam_custom_upload_dir( $uploads ) { $upload_path = ”; $upload_url_path = ”; if ( empty( $upload_path […]
WordPress 技巧:非管理员可以设置自定义分类
如果你是一个 WordPress 开发者,给自己的日志(或者自定义类型的日志)添加自定义分类模式(custom taxonomy),并且你的系统还支持注册用户在前台通过一个表单来投稿,并且需要用户也能输入自定义分类,这个时候你就使用 wp_insert_post 函数来插入日志,但是 wp_insert_post 函数内部是有权限判断的: if ( current_user_can($taxonomy_obj->cap->assign_terms) ) wp_set_post_terms( $post_ID, $tags, $taxonomy ); 自定义分类模式(custom taxonomy)默认的 assign_terms 权限是:manage_categories,可以管理分类,而只有管理员或者编辑(editor)可以管理分类。所以我们在创建自定义分类的时候,就要将其 assign_terms 权限设置为支持订阅者。比如: register_taxonomy( ‘device’, ‘post’, array( ‘hierarchical’ => true, ‘label’ => ‘适用设备’, ‘query_var’ => true, ‘rewrite’ => array(‘slug’ => ‘device’,’with_front’=>false), ‘capabilities’ => array( ‘manage_terms’ => ‘manage_categories’, ‘edit_terms’ => ‘manage_categories’, ‘delete_terms’ => ‘manage_categories’, ‘assign_terms’ => […]
WordPress 技巧:如何解决“Fatal error: Call to a member function get() on a non-object”
在自己代码的函数中使用 require(BASE_PATH . ‘wp-load.php’); 引入 WordPress 核心代码,然后执行 WP_Query 获取特定的日志,然后就发生下面的错误: Fatal error: Call to a member function get() on a non-object in [path to site]\site\wp-includes\query.php on line 27 这是因为全局变量不正确使用引起的问题,默认 $wp_query 是在 wp-setting.php 中定义的,因为是定义在最外层,所以 $wp_query 自然就是一个全局的变量。但是这里在自己的函数中通过 require(BASE_PATH . ‘wp-load.php’); 引入 WordPress 核心代码,$wp_query 反而变成这个函数中的本地变量,所以其他代码调用 $wp_query 的时候,就发生了错误。 解决方法是:在 require(BASE_PATH . ‘wp-load.php’); 代码上面加入以下代码,预先将 $wp_query 定义为全局变量: define(‘WP_USE_THEMES’, false); global $wp, $wp_query, […]

