Я попросил мою работу добавить rel='nofollow'
в RSS-канал WordPress на нашем сайте. Теперь RSS-канал уже имеет rel='nofollow'
, добавленный ко всем тегам <a href>
, который отлично работает. То, что они действительно задают, заключается в том, чтобы добавить nofollow
в собственно RSS node
.Модификация узлов RSS в WordPress
Они в основном хотят <link rel='nofollow'>
вместо <link>
Would добавив nofollow
на уровне узла на самом деле сделать что-нибудь? Я понимаю, что он работает на уровне href
, но кажется странным сделать это здесь. Если это работает так, как ожидалось, используя PHP, как я могу изменить этот узел, чтобы добавить это пространство имен?
Вот пример моего RSS-канала.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>Article Title here</title>
<link>http://fakewebsiteurl.com</link>
<description>article description here</description>
<language>en-US</language>
<generator>https://wordpress.org/?v=4.5.2</generator>
<item>
<title>Test Article</title>
<link>http://fakewebsiteurl.com/news/test-article/</link>
<comments>http://fakewebsiteurl.com/news/test-article/#respond</comments>
<pubDate>Thu, 05 May 2016 18:16:50 +0000</pubDate>
<description><![CDATA[<p>Description text here</p>
<p>The post <a rel="nofollow" href="fakewebsiteurl.com/news/test-article/">Test Article</a> appeared here</p>
]]></description>
</item>
<item>
...
</item>
</channel>
У меня есть пользовательская страница PHP, которая модифицирует этот RSS уже, но я не уверен, что нужно полностью или, если есть далеко, чтобы изменить его непосредственно заменить узел. Я думал об использовании str_replace
, но это не сработало.
<?php
namespace X;
class RssFeed {
public function __construct() {
add_filter('the_content_feed', array($this, 'add_nofollow_href'));
}
function add_nofollow_namespace($content) {
if (is_feed()) {
$link = '<link>';
$linkno = '<link rel="nofollow">';
$updated = str_replace($link, $linkno, $content);
return $updated;
}
}
}
?>
Заранее спасибо. Обоснованы примеры кода.