Flarum的SEO插件可以有效的提高站点的SEO收录,但是也有一些潜在的问题。
if($firstPost !== null) {
$content = $firstPost->formatContent();
// Set page description
$this->parent
->setDescription($content)
// Set page image
->setImageFromContent($content);
}
他默认使用楼主的帖子的内容作为Description,那么如果首帖是有收费内容或者回复可见,权限等等,都会失效。
我的处理方式是在这里进行判断,如果有不可见内容进行替换,如下,增加一个filter
// Set discussion description, only when a first post exists
if($firstPost !== null) {
if($discussion->getAttribute('read_permission')>0 || $discussion->getAttribute('pay2see_cost')>0){
$content = $discussion->getAttribute('title');
}else{
$content = $firstPost->formatContent();
$content = self::replaceContent($content, "[pay]", "[/pay]", "");
$content = self::replaceContent($content, "<reply2see>", "</reply2see>", "");
$content = self::replaceContent($content, "<login2see>", "</login2see>", "");
$content = self::replaceContent($content, "<like2see>", "</like2see>", "");
}
// Set page description
$this->parent
->setDescription($content)
// Set page image
->setImageFromContent($content);
}
但是直接在原插件上修改的问题就是,如果插件更新了,需要重新修改一次,不知道大家有没有更好的办法。