で重複を示しています。これを行うには、明らかに私はすべての記事とWordpressのインストール内のページをループする必要があります。私はクイック機能を書いてライブサイトのサーバにアップロードして、それが機能しているかどうかを確認しました。は私と私が(何らかの理由で)私たち自身のサイトマップを生成したいと働いているSEOの男のWordpress
奇妙なことは、しかし、私は(WAMPを使用して)ワードプレスのインストールをローカルでこれと同じ機能をテストしようとすると、それは(重複別名)を複数回、いくつかのポストの名前を出力しています。私はちょうどここに誰かが起こっているかもしれないバグを知っていたのか、私のコードを変更する必要があるかどうかを知りたいと思っていました。たとえば、私のコードは現存のサイトで動作するかもしれませんが、後でもっと多くの投稿が追加されたときにこの問題に直面することはなく、XMLファイルに重複が見え始めます。
とにかく、ここに私のコードは次のとおりです。
<?php
$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;
// Loop through each post, and echo out the url and it's amp extension.
foreach($posts as $post) {
if($post->post_type == 'post') {
$permalink = get_permalink($post->ID);
echo "\n\t<url>\n\t\t<loc>{$permalink}</loc>\n\t</url>";
echo "\n\t<url>\n\t\t<loc>{$permalink}amp/</loc>\n\t</url>";
}
}
私が述べたように、それはライブサイト上で動作し、重複を印刷しません。ですから、echo文の構文を自分で心配する必要はありませんが、ここでは、サイト上の各ポストのために印刷されますものです:
<url>
<loc>https://www.somedomain.com/post1/</loc>
</url>
<url>
<loc>https://www.somedomain.com/post1/amp/</loc>
</url>
誰もがこの上の意見がありますか?
ライブページで使用しているローカル環境で同じデータベースを使用していますか? –
それはまったく異なるインストールであり、関係はありません。私は自分のローカルコンピュータに新しいデータベースを作成し、新しいWordPressのコピーをインストールしました。それから3つの新しい投稿を作成し、5つの投稿を印刷します。私がちょうどdupsなしで私のポストのリストを簡単に得ることができないのは狂気です...私はワードプレスを嫌う。 –
しかし、あなたはあなたのローカル環境にライブDBをコピーするだけでなぜですか?あなたのコードのためか、DBの違いのためかを簡単に知ることができます。 –