阅读视图

Argon主题优化 | 将说说添加到RSS

动机

果然读者是第一生产力,自从有友友反馈RSS订阅不到我的脑电波(疯言疯语)后,我就下定了决心解决这个问题,在请教了chatgpt老师后,仅用两个小时就搞定了这个功能,其实很多事情都没有我们想象中的那么困难,只要你起步去做,就会发现这件事情——半步就走到头了。

方法

废话不多说,直接上代码:

// 将 shuoshuo 类型的帖子加入到 RSS feed 中
function custom_rss_query($query) {
    if ($query->is_feed) {
        $query->set('post_type', array('post', 'shuoshuo')); // 添加 'shuoshuo' 类型
    }
    return $query;
}
add_filter('pre_get_posts', 'custom_rss_query');

// 只在 RSS 中为没有标题的 shuoshuo 自动生成默认标题
function add_default_title_to_rss_shuoshuo($title, $post_id) {
    if (is_feed()) {  // 检查是否是 RSS feed
        $post_type = get_post_type($post_id);
        
        if ($post_type == 'shuoshuo' && $title == '') {
            return '脑电波'; // 只在 RSS 中为无标题的说说设置默认标题
        }
    }
    
    return $title;
}
add_filter('the_title', 'add_default_title_to_rss_shuoshuo', 10, 2);

这个代码写在哪呢?可以写在主题的functions.php里,但是考虑到可能存在的更新覆盖(虽然主题大大已经停更很久了),我还是强烈安利你写在Snippets这个插件里,这个插件可以更直观清晰地管理附加代码,包括PHP、HTML、CSS、JavaScript等都能写。我也是今年才发现这个好东西,如果早点知道还能这么操作可能就不会去自己做插件了哈哈。

保存成功后可以去feed页面查看一下是否添加成功,比如我的订阅地址是https://crowya.com/feed

注意如果要在手机RSS阅读器里看到效果,可能需要清除一下缓存,WP Super Cache或者Autoptimize的缓存都清除一下试试,之前的评论验证码bug极有可能就是Autoptimize缓存未更新的问题。

如果你的RSS只显示10条内容,可以在WordPress自带设置里修改。

如果你好奇我的RSS结尾信息是怎么添加的,那是因为Yoast SEO刚好有这个设置我就用上了哈。

最后推荐一个安卓端的RSS阅读器:Read You,颜值还怪好看的哈,功能也简洁,对标的应该是iOS的Reader,最重要的还是免费开源。之前的inoreader为啥不用了?全平台还是香的,但是我发现它是在线更新,文章获取频率是固定的,没法第一时间手动刷新,对于我们这种需要实时调试的博主来说就有点鸡肋了,而Read You就只是单纯地从本地获取服务器内容,离线阅读器,随时都可以手动更新。

不过测试的时候最好清空一下所有文章哈,有可能他发现本地存过某篇文章就跳过更新了,这样有些标题可能还是旧的。

就酱紫吧,终于在中秋假期拔掉了这个flag,祝大家中秋节快乐!

本文发表于鸦鸦的巢穴,感谢您的订阅!如需评论请前往Argon主题优化 | 将说说添加到RSS

  •  

教程 | 将博客朋友圈化——仅展示最近一个月动态

前言

心心念念这个功能好久了,也向主题作者提过需求,不过可能是太小众了,作者大大应该是没有考虑。

那就只好自己动手啦,不过拖延症晚期,趁这段时间板子投出去了有点空闲,终于把这个功能折腾出来了。

本着能用插件就绝不自己写代码的原则,本教程都是傻瓜式操作。

工具

  • Telegram
  • IFTTT
  • IFTTT Post Formats & Post Types(WordPress插件)
  • PublishPress Future(WordPress插件)

思路

首先说明一下,这些动态都是基于Argon主题自带的“说说”这一帖子类型(Post Type)存在的,只不过我把“说说”标题改成“脑电波”了,标题是通过JavaScript覆盖的,但这种做法确实不太优雅,还是希望作者大大提供一个自定义标题的设置。所以,脑电波和文章是互不干扰的,只有脑电波是一个月可见,文章还是永久可见。当然,也不一定是一个月,到期时间可以视需求而定。

在手机聊天框发送动态

另一个方面是操作的便捷性,要想获得发朋友圈那样的丝滑体验,WordPress网页版恐怕是无法差强人意的。尤其是在手机上使用WordPress,就更难操作了。解决的方法当然是连接现有app,像发推一样或者聊天一样发送动态。当下最流行的app当然是Telegram和Twitter,Telegram本身有自动删除功能,Twitter好像得开会员吧,而且Twitter限字数。我这里选择的是Telegram,当然你也可以用Twitter,原理是差不多的。

配置自动转发

那么怎么把Telegram连接到WordPress呢?这就用到IFTTT(If This, Then That)了,可以理解为自动触发机器人,它有网页版也有APP,只要设置好就可以不管了,卸了也没关系。免费版bot数量有限,但已经够用了。

唯一需要注意的是右图Categories的填写,务必写为ifttt-posttype-{shuoshuo},因为IFTTT只能以文章的形式转发到博客,需要通过IFTTT Post Formats & Post Types这个插件转换成脑电波类型。

上面的规则只接受文本触发,如果要发送图片需要另外配置一条规则,原理类似,不再赘述。

强迫症额外处理

这样设置完之后应该能从Telegram正常发布到WordPress了,但是每次触发会残留一个名为ifttt-posttype-{shuoshuo}的分类名称,如下图,强迫症看了肯定难受。

好在插件作者也想到了这一点,为我们预留了一个过滤器,不过需要手动将下面的代码添加到主题的functions.php或自建的mu-plugin中。

<?php add_filter( 'ifttt_pfpt_delete_ifttt_cats', '__return_true' ); ?>

添加到主题的functions.php是一种不太优雅的方法,因为每次更新主题都需要重新添加,而自建mu-plugin是一种一劳永逸的方法。我也是最近才听说mu-plugin这个东西,之前只知道用JavaScript修改是一劳永逸的,现在PHP也可以一劳永逸了,而且似乎更优雅,只不过需要自建插件,而且在宝塔面板里编辑。

不要听到“自建插件”就吓跑了,别的插件我不知道,这个插件还是很容易的,它是个全文只有一行代码的.php文件,你可以把它命名为myplugin.php,放在mu-plugins这个文件夹下面就行,mu-plugins文件夹需要自己新建,它的路径是/www/wwwroot/wordpress/wp-content/mu-plugins,如图。

现在你把ifttt-posttype-{shuoshuo}这个分类删掉就再也不会出现了。

设置期限

接下来才是本文的重点,那就是到期自动隐藏。试了很多款插件,PublishPress Future最合适,尽管也有一些bug,但无关痛痒,和我一样设置就行,踩过的坑我在图里都标出了。

设置完简单测试一下基本就大功告成啦!如果你要排查问题,可能会用到下面这个页面。

分隔提示

建议在最后设置一条永不过期的脑电波提示一下到底了。

那么本教程到这里就结束了,现在可以愉快地发脑电波了~

本文发表于鸦鸦的巢穴,感谢您的订阅!如需评论请前往教程 | 将博客朋友圈化——仅展示最近一个月动态

  •