生成并显示相关文章的 WordPress 插件:Similar Posts

By | 最新修改:2024-08-17

1、前言

1.1 本文主旨

使用 WordPress 插件“Similar Posts”为站点文章页面生成并显示相关文章的列表,该列表中包含与当前文章内容或关键词相关的文章的标题和链接 URL。

1.2 Similar Posts 是如何找到相关文章的

该插件通过文章内容、标题和标签(Tags)以一定的权重建立索引来搜索文章,从而找到与当前文章最相关的其他文章,然后按设定的规则把文章显示到当前文章页面中。

1.3 插件相关的资源

插件主页: https://wordpress.org/plugins/similar-posts/

由于插件开发者因故下架了该插件,在 WordPress.org 已经下载不了该插件,笔者复制了一份在 Github 开源,是原版本,没有修改任何代码。

代码仓库: https://github.com/cxzl2024/similar-posts

2、安装“Similar Posts”

2.1 WordPress 官方渠道下载(已废弃)

关于WordPress插件的 安装、激活与缷载请点击这里

与所有的WP插件一样,“Similar Posts”可通过管理后台安装。

在后台界面,依次展开“插件(Plugins) -> 添加新插件(Add New)”,然后在搜索框上搜索“Similar Posts”。

找到以下的就是该插件了:

安装 Similar Posts

2.2 克隆源代码下载(现前仅有的渠道)

克隆 Similar Posts 到目录 /path/to/wp-content/plugins/

# RedHat 系
yum install -y git
# Debian 系
sudo apt install -y git

cd /path/to/wp-content/plugins/
git clone https://github.com/cxzl2024/similar-posts.git
# 克隆完成要更改目录属主和属组

如果遇到因网络问题而不能克隆代码的情况,参考:如何在境内加速 GitHub 资源的下载以及克隆

安装好插件,接下来的一步是对插件进行配置,以使用得更称心。

3、配置

3.1 常规(General)

  1. 要显示的文章数“Number of posts to show”:

    设置与当前文章相关联文章的推荐数目。

  2. 要跳过的文章数“Number of posts to skip”:

    不知道这个是什么意思,保持默认吧。

    默认为0。

  3. 显示受密码保护的文章“Show password-protected posts”:

    默认为“No”,表示不显示。

  4. 显示静态页面“Show static pages”:

    默认即可。

  5. 显示附件“Show attachments”:

    保持默认“No”。

  6. 显示以下文章“Display posts that are”:

    • Published:发表出来的文章,能被访客看到的。
    • Private:只能够特定访客看到的。
    • Draft:草稿。
    • Future:未来(这是什么鬼?)。

    除了第一个设为“Yes”,其他的设置默认值“No”。

  7. 忽略文章“Ignore posts”:

    设置少于(less than)或旧于(more than)多长时间的文章不参与建索引和推荐。

    默认为0,若不想设置,则保留默认值。

  8. 忽略当前文章“Omit the current post”:

    当前文章是否参与建索引并推荐到当前页面。

    默认为“Yes”,也推荐此值。

  9. 匹配当前文章的分类“Match the current post’s category”:

    如果选择的是“Yes”,那么可能它的意思是推荐出来的文章必须要属于当前文章的分类。

    默认即可。

  10. 匹配当前文章的标签“Match the current post’s tags”:

    与上面的类似。

    “Any tag”:要匹配当前文章所属的任意一个标签。

    “Every tag”:只有当标签与当前文章所属的所有标签相一致时的才推荐。

    保持默认即可,因为该插件极为智能。

  11. 匹配当前文章的作者“Match the current post’s author”:

    与上面的类似。

    是否与当前文章有相同的作者为匹配条件。

    默认为“No”

点击“Save Settings”保存修改。

设置后:

Similar Posts常规设置

点击图片访问大图

3.2 输出(Output)

  1. 输出模板“Output template”:

    这里设置“Similar Posts”在文章中的HTML输出,一般HTML无序列表元素“ul”作为外层,然后内层用列表项“li”来包裹推荐出来的文章URL链接。

    如果不是特别定制,这里保持不动就可。

  2. 列表前的文本和代码“Text and codes before the list”:

    就像前面说的那样,推荐出来的文章 URL 链接列表用“li”来包裹,而“li”的外层是“ul”。

    一般默认即可。

  3. 列表后的文本和代码“Text and codes after the list”:

    这里是HTML元素“ul”的收敛元素“/ul”。

    如果前面把“ul”和“li”修改成其他元素,那么这里也要对应地修改。

    修改这个需要一点HTML和CSS知识,一般情况下不修改为好。

  4. 如果没有匹配则默认显示“Default display if no matches”:

    这个容易理解,如果实在没有推荐结果,则用此文本来代替推荐文章链接的位置。

    笔者把它修改为“没有推荐结果”。

  5. 如果没有匹配项什么都不显示“Show nothing if no matches”:

    如果它为“Yes”,那么上面选项就会失效。

    默认为“No”,笔者设置为“Yes”。

  6. 列表条目之间的文本和代码“Text and codes between items”:

    意思是在推荐文章链接之间会嵌入这个选项的内容。

    除非特别定制,留空即可。

  7. 排序输出的次序“Sort Output By”:

    该选项留空表示默认的次序。

    那个“Output Tag”笔者不理解。

  8. 组标题模板“Group title template”:

    笔者不知道怎样填写,就留空吧。

点击“Save Settings”保存修改。

修改后:

Similar Posts 输出选项

点击图片访问大图

3.3 过滤(Filter)

这个部分主要设置要过滤不进行索引和推荐的目标。

  1. 要排除的文章“Posts to exclude”:

    输入要排除的文章的ID,用英文逗号分隔多个ID。

  2. 要包括的文章“Posts to include”:

    设置方法与上一个选项类似。

  3. 要排除/包括的作者“Authors to exclude/include”:

    这里设置哪些作者的文章要排除/包含其中。

    “Exclude”表示不包含。

    “Include”表示包含。

  4. 要排除/包括的分类“Categories to exclude/include”:

    与上一选项类似。

  5. 将文章与标签匹配“Match posts with tags”:

    要求输入标签(Tags)名称以提供指定的匹配。

    比如有a、b、c标签:a,b表示其中任意一个匹配当前文章都会推荐出来,a+c表示两个同时匹配才推荐出来,多个(/组合)用英文逗号分隔开来———— a+b,c,c+b。

  6. 按自定义字段匹配文章“Match posts by custom field”:

    字段名称(“Field Name”),字段值(“Field Value”)。

    提供多种自定义文章字段比较的方式:

    Similar Posts-过滤器自定义字段

    点击图片访问大图

点击“Save Settings”保存修改。

修改后:

Similar Posts-过滤器选项总览

点击图片访问大图

3.4 放置“Placement”

此部分设置推荐文章要放置的地点。

有文章之后、RSS、小部件(Widget)以及特殊的标签。

  1. 在文章之后输出“Output after post”:
    • “Activate”(启用):

      如果没设置为“Yes”,那么推荐的文章就不会出现在文章的后面。

      默认为“No”。

    • “Priority”(优先级):笔者不知道在这里何为优先级。

    • “Parameters”(参数):自定义显示推荐位的代码和文本。
    • “Condition”(条件):

      不太明白,只知道WordPress函数“is_single()”用来判断是否是文章页面。默认是 is_single()。

  2. 在RSS中输出“Output in RSS feeds”:

    这里与上一个选项类似。

  3. 在小工具中输出“Output in widget”:

    与上面选项类似。

  4. 在内容中输出“Output in content”:

    不理解,保持默认“No”就行了。

点击“Save Settings”保存修改。

修改后:

Similar Posts-放置选项总览

点击图片访问大图

3.5 杂项(Misc)

  1. 相关重要性“Relative importance of”:

    该选项决定进行用于推荐的相关重要性中各因素的比重。

    总比重为100%。

    • “content”:文章内容
    • “title”:文章标题
    • “tags”:文章标签

    所有值默认即可。

  2. 用来匹配的最大单词数目“Maximum number of words to use for match”:

    保持默认即可。

  3. 匹配时用什么方式来提取关键词“Extract terms to match by”:

    • “Word Frequency”:根据词频
    • “TextRank Algorithm”:采用TextRank算法

      具体什么是TextRank,请移步: https://blog.csdn.net/asialee_bird/article/details/96894533

    喜欢哪个用哪个。

  4. 在自定义字段中寻找手动链接“Look for manual links in custom field”:

    如无特殊需要,保持默认即可。

  5. 将类似的文章添加到提要“Add Similar Posts to feeds”:

    这个选项已经被废弃,保持默认值即可。

  6. 从代码段中删除的其他插件标签“Other plugins’ tags to remove from snippet”:

    请原谅我才疏学浅,实在不知道这个选项是什么东西。

点击“Save Settings”保存修改。

修改后:

Similar Posts--杂项选项总览

点击图片访问大图

3.6 管理索引(Manage the index)

这一部分设置的是分词索引的处理方式。

Similar Posts 维护一个特殊索引以帮助搜索相关文章。索引在插件激活时创建,然后在添加、编辑或删除文章时自动保持最新。

  1. 处理扩展字符“Handle extended characters”:

    如果您使用英语以外的语言,您可能会发现该插件会破坏一些字符,因为 PHP 通常不识别多字节字符。您可以强制插件将扩展字符解释为 UTF-8,但会牺牲一点速度,但此功能仅在您的 PHP 安装支持 mbstring 函数时可用。

    如果你的WordPress站点是中文的话,那请把该选项设为“Yes”。

  2. 对待中国人、韩国人或日本人“Treat as Chinese, Korean, or Japanese”:

    中文、韩文和日文等语言对全文搜索算法造成了特殊的困难,为解决这个困难,文本必须编码为 UTF-8。并且把此选项设置为“Yes”。

    这选项是实验性的,插件作者期待与您交流反馈。

  3. 对待相关词的变体“Treat Related Word Variations”:

    该插件提供三种处理相关词变体的算法,分别是:

    • “Strictly”:严格模式
    • “By Stem”:词干提取
    • “Fuzzily”:模糊匹配

    为英语、德语、西班牙语、法语和意大利语提供词干算法。

    词干提取和模糊匹配都会稍微减慢索引速度。值得尝试这三种可能性,看看在您的特定情况下是什么提高了文章的相关性。

    所以一般情况下,我们选择“Strictly”。

  4. 批量大小“Batch size”:

    默认情况下,索引例程以 100 个为一批处理文章。

    如果您遇到内存有限的问题,您可以选择使批次更小。

    默认是100,可暂且定为100,如果以后觉得占用系统资源的多少,可以适当调大调小。

点击“Recreate Index”保存修改并且重建索引。

修改后:

Similar Posts-索引设置

点击图片访问大图

4、后话

本文尽可能详尽地讲述了“Similar Posts”插件的几乎所有的设置选项。

该插件也提供了众多好用的选项来配置相关文章推荐这项工作,并且应用了多种优秀的算法来使推荐更加优化和准确。

尽管有些选项对于本文笔者来说是理解不透的,笔者还是挺喜欢此款WP插件的。

最后,祝使用愉快!


程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com