今天明月收集整理了一些很不错的实用 WordPress 代码,一是为了方便自己的使用和记录,二也分享给大家,以便大家有选择的实用。
WordPress 文章分页智能伪静态化
我们通常将 WordPress 固定链接设为 /%postname%.html 或者/%post_id%.html,这样可以让页面看起来像静态页,但当文章有分页时,分页链接会变得奇怪,比如:
- /morning-paper-news.html/3
- /132.html/2
html 既然是后缀就应该一直在最后,来自solagirl的《用.html作为url后缀时的分页链接问题》一文,为我们提供了解决办法。不过原代码只提供了 /%postname%.html 的修改方法,本文就补充完善一下,提供一下 /%post_id%.html 的修改方法。具体做法也很简单,只需要将以下代码添加到当前主题 functions.php 中:
- // 适合/%post_id%.html分页链接修正
- class Rewrite_Inner_Page_Links_id{
- var $separator;
- function __construct(){
- $this->separator = '/page-';
- if( !is_admin() || defined( 'DOING_AJAX' ) ) :
- add_filter( 'wp_link_pages_link', array( $this, 'inner_page_link_format' ), 10, 2 );
- add_filter( 'get_comments_pagenum_link', array( $this, 'comment_page_link_format' ) );
- add_filter( 'redirect_canonical', array( $this, 'cancel_redirect_for_paged_posts' ), 10, 2 );
- endif;
- if( is_admin() ) :
- add_filter( 'rewrite_rules_array', array( $this, 'pagelink_rewrite_rules' ) );
- register_activation_hook( __FILE__, array( $this, 'flush_rewrite_rules' ) ) ;
- register_deactivation_hook( __FILE__, array( $this, 'flush_rewrite_rules' ) );
- endif;
- }
- function flush_rewrite_rules(){
- flush_rewrite_rules();
- }
- // 修改post分页链接的格式
- function inner_page_link_format( $link, $number ){
- if( $number > 1 ){
- if( preg_match( '%<a href=".*\.html/\d*"%', $link ) ){
- $link = preg_replace( "%(\.html)/(\d*)%", $this->separator."$2$1", $link );
- }
- }
- return $link;
- }
- // 为新的链接格式增加重定向规则,移除原始分页链接的重定向规则,防止重复收录
- function pagelink_rewrite_rules( $rules ){
- foreach ($rules as $rule => $rewrite) {
- if ( $rule == '([0-9]+).html(/[0-9]+)?/?$' ) {
- unset($rules[$rule]);
- }
- }
- $new_rule['([0-9]+)('.$this->separator.'([0-9]+))?.html/?$'] = 'index.php?p=$matches[1]&page=$matches[3]';
- return $new_rule + $rules;
- }
- // 禁止WordPress将页面分页链接跳转到原来的格式
- function cancel_redirect_for_paged_posts( $redirect_url, $requested_url ){
- global $wp_query;
- if( is_single() && $wp_query->get( 'page' ) > 1 ){
- return false;
- }
- return true;
- }
- }
- new Rewrite_Inner_Page_Links_id();
添加代码后,需要到后台 >> 设置 >> 固定链接中保存一下设置,之后再次打开文章分页链接,就会变成类似的:
- /morning-paper-news/page-2.html
- /132/page-2.html
代码来自:Boke112导航
禁止“讨论”黑名单中关键词的评论发表
WordPress 的垃圾评论骚扰是个很烦人的事儿,在【再说说博客评论这些事儿!】一文里明月专门讲过我自己喜欢使用 WordPress 后台的“黑名单”来屏蔽关键词以达到自动拉黑这里评论的目的,但是每天还是会在评论“回收站”里看到这些垃圾评论,下面的代码就是直接拒绝“讨论”黑名单中关键词的评论发表。自从用上以后感觉垃圾评论就少了很多了,一旦发现漏网的垃圾评论,及时的找出“关键词”放到 WordPress “讨论”的“黑名单”里就可以了。很完美呀!
- //拒绝黑名单中信息的评论发表
- function mac_fuckspam($comment) {
- if( is_user_logged_in()){ return $comment;} //登录用户无压力...
- if( wp_blacklist_check($comment['comment_author'],$comment['comment_author_email'],$comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_IP'], $comment['comment_agent'] )){
- header("Content-type: text/html; charset=utf-8");
- exit('你填写的某项信息或IP地址已被列入黑名单,无法进行评论,请文明评论!');
- } else {
- return $comment;
- }
- }
- add_filter('preprocess_comment', 'mac_fuckspam');
代码来自:闲鱼博客
WordPress 的RSS里排除指定文章分类
这个主要是方便又RSS订阅用户的博客站点的,有些文章分类下的文章不需要输出到RSS源里那么就可以使用这个代码来排除这个分类。
- //RSS排除分类ID
- function exclude_category($query) {
- if ( $query->is_feed ) {
- $query->set('cat', '-55, -1');
- }
- return $query;
- }
- add_filter('pre_get_posts', 'exclude_category');
注意参数cat后面的数字替换为自己需要排除的文章分类ID哦。
代码来自:云落博客
我们在访问网站时,看到一篇文章,想发表评论时,是否经常要在评论框里手动填写自己的昵称、E-mail 和网址等留言评论信息?重复的打字会让我们感到很乏味。
今天,要介绍的也是同样的方法,把 Javascript 代码存为书签来使用,但又有很大的不同,因为网上的所有(至少我搜索到的...)方法都有很大缺陷,他们不能实现跨平台跨网站,也就是说,可能适用于wordpress、Typecho、zblog和emlog等平台中的一个或几个,但都不能全部适用!我这里介绍的就是全平台全网通用的留言评论自动填写个人信息方法!
博客全平台通用评论神器一键自动填写昵称、邮箱和网址
- // By 龙笑天下 http://www.ilxtx.com/automatically-fill-in-personal-information.html
- javascript:void function(){var lauthor=["#author","input[name='comname']","#inpName","input[name='author']","#ds-dialog-name"],lmail=["#mail","#email","input[name='commail']","#inpEmail","input[name='email']","#ds-dialog-email"],lurl=["#url","input[name='comurl']","#inpHomePage","#ds-dialog-url","input[name='url']"];for(i=0;i<lauthor.length;i++){var author=document.querySelector(lauthor[i]);if(author!=null){author.value='明月登楼';break}}for(j=0;j<lmail.length;j++){var mail=document.querySelector(lmail[j]);if(mail!=null){mail.value='mingyue@ymanz.com';break}}for(k=0;k<lurl.length;k++){var url=document.querySelector(lurl[k]);if(url!=null){url.value='https://www.imydl.com';break}}return!1}()
代码说明:lauthor、lmail和lurl中引号 ""面的内容即为需要填写的评论留言框 input 元素里面的对应id、class或标签等,如遇到不能自动填写的博客网站,可以右键“审查元素”根据各个博客网站评论留言框 input 元素的相关变化在上述代码相关地方进行增删修改!
PS:由于原代码无法正确保存,已将代码压缩,大家可以放心使用。
- 简单赘述下,具体的使用方法:
将本页添加到收藏夹保存为书签;
右键刚刚创建的书签,选择“编辑”或“属性”;
将“名称”一栏改为“一键填写留言评论信息”(见名知意即可,名称可换成其它的),并将“网址”或“地址”或“url”一栏原有的网址链接替换成上述javascript代码(代码里面的相关个人信息改为自己的哦~~),确定即可。
以后遇到留言评论时,点一个这个书签即可自动一键填写个人信息!
- 本方法适用平台:
- WordPress
- Typecho
- ZBlog
- Emlog
- 多说
- 其他
代码来自:Boke112导航
上述这些代码都不是明月原创的,所以如果转载的话,请大家一定要记得注明代码来源哦!对每一个代码制作者的尊重是我们站长一定要遵循的美德之一,这些代码至少都是明月当前正在使用的或者是已经使用过的,基本上兼容性都非常的好,都是可以单独放在主题目录function.php里直接使用的(可以参考【如何方便的在更新主题时保留functions.php里的自定义】一文)。
历史文章推荐:
- 2018: 焦点访谈揭自媒体乱象:低俗色情标题党 传谣买流量(44)
- 2016: 我为什么喜欢使用QQ输入法?(42)
- 2015: 『阅读分享』说说个人站长做什么网站比较实际(30)
- 打赏明月一下下
- 多谢您的赞赏!
-
- 本博客小程序
- 微信内浏览本博客
-
2018-01-21 08:33 10楼
谢谢分享,留个脚印。
2018-01-21 14:23 1层
@看全网影视 多谢支持!
2017-11-28 23:26 9楼
黑名单想用,但一直没有用,有个滑动评论,少有机器人了。
2017-11-29 08:19 1层
@Koolight 你可以试试的!没有滑动提交的评论还是很给力的! :cool: 评论起来6666 :idea:
2017-11-12 18:31 8楼
都很实用,黑名单那个我一直在用。
2017-11-12 21:06 1层
@99八十一 嗯,是的,黑名单这个真心很赞的,我用了以后,垃圾评论里干净了很多!
2017-11-12 09:57 7楼
很实用,感谢博主分享
2017-11-12 21:05 1层
@里维斯社 客气了,欢迎常来哦!
2017-11-12 01:17 6楼
博主很勤奋,创作热情很高,还都是经篇文章
2017-11-12 21:05 1层
@米扑博客 呵呵,多谢支持!大家的支持才是我创作的动力!
2017-11-11 22:37 5楼
与博主算得上老朋友了,今天看了我博客读者墙,博主是铜牌读者,与博主博客相识,好像已两年了,其间好多博客已不在,感触颇深,兴趣是唯一持之以恒的动力。好久不见,来看我老朋友。
我已经不喜欢鼓捣代码了,一开始就没学会过,这东西鼓捣不来,其实买个主题也挺好,就觉得知更鸟主题很漂亮,祝博主博客更上一层楼。
2017-11-12 21:04 1层
@请输入您的QQ号 呵呵,多谢支持哦!是呀,坚持很不容易呀!
2017-11-11 16:47 4楼
评论的代码。我一直都在用。挺棒的!
2017-11-11 16:47 1层
@烤德香 是的,超赞的!
2017-11-11 13:13 地板
好文章,非常值得收藏
2017-11-11 14:56 1层
@历史趣谈 多谢支持!
2017-11-10 15:37 板凳
最喜欢的还是评论神器
2017-11-10 16:15 1层
@姜辰 哈哈,是的,这个神器真的是居家旅行必备大杀器呀!
2017-11-10 15:25 沙发
那个评论神器代码非常实用,要不然很多时候都要输入评论者信息,那样会非常累
2017-11-10 15:26 1层
@懿古今 是的,并且这个代码的兼容性很不错,几乎兼容了所有的博客平台!好神奇!!!