RSSに投稿IDを表示する方法
この私のコード:
$rss = new DOMDocument();
$rss->load('https://www.ciusan.com/feed');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
// 'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_Push($feed, $item);
}
$limit = 5;
echo '<div>';
echo '<ul class="soo-latest">';
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
// $description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<li>» <a target="_blank" class="soo-info" href="'.$link.'">'.$title.'</a>';
echo '<small class="help">Posted on '.$date.'</small></li>';
// echo '<p>'.$description.'</p>';
}
echo '</ul>';
echo '</div>';
この私のパーマリンク:
/%category%/%post_id%/%postname%/
私はwp_get_shortlink(get_the_ID());
を以下のために使いたいです。
echo '<li>» <a target="_blank" class="soo-info" href="'.$link.'">'.$title.'</a>';
だから長いリンクではなく短く表示...
あなたはフックを通してあなたのフィードにカスタムタグとしてIDを追加することができます。しかし、これを格納するためのrss/atom標準には有効なタグはありません。次の例のように、投稿のIDを取得するためにguid
タグを分割する必要があると思います。
フィード内のガイド:
<guid isPermaLink="false">https://www.ciusan.com/?p=3566</guid>
IDを分割してください。
$id = explode( '=', $guid );
Var $guid
はあなたのforeachループの中で強化するべきです、それでそれはそれぞれのguidをそれぞれのアイテムに格納します。 $id
は、すべての文字列が=
という文字列で分割された配列を取得します。これもあなたの投稿IDです。