0

私は現在、不動産業者向けのオブジェクトリストを構築しており、すべてのオブジェクトを「objekt」というカスタム投稿タイプにローカルにキャッシュしています。パーマリンクは「objekt」に書き換えられています。

サーバーのルートにwp-fetch-items.php、システム内の新しいオブジェクトの時点で不動産業者アプリケーションが ping するファイルがあります。これにより、タイプ「objekt」のすべての投稿が削除され、XML ファイルを通過して、すべてのオブジェクトがシステムに再度追加されます。

すべてが完全に正常に機能しますが、投稿が初めて作成された場合でも、投稿は URL で -2 を取得し続け、名前が少しでも似ているものはありません。

たとえばwp_insert_post、名前を使用して挿入したオブジェクト152912は、post_name を取得し152912-2ます。

次のコードでオブジェクトを作成します。

$insertedPost = wp_insert_post(array(
    'post_author' => 1,
    'post_type' => 'objekt',
    'ping_status' => 'closed',
    'post_status' => 'publish',
    'post_name' => $objectData['title'],
    'post_title' => $objectData['title']
), false);

それらが作成される前に、タイプが「objekt」のすべての投稿をループし、次のコードを使用してそれらを削除します。

wp_delete_post(get_the_ID(), true);

データベースからオブジェクトを完全に削除するために、2 番目のパラメーターとして true を具体的に追加しました。すべての検索で、オブジェクトが何も残っていないことが証明されます。

また、このコードを使用して削除後にパーマリンクをフラッシュしようとしましたが、状況を改善するために何もしません:

global $wp_rewrite;
$wp_rewrite->flush_rules();

この問題を経験したことがありますか?また、その解決方法を知っていますか? 何が原因かわかる方回答お願いします!

前もって感謝します、ジョナサン

4

2 に答える 2

1

Wordpress には、数値の投稿名の特別な処理があります。URL の数値 ID が投稿の実際の ID であると想定しているため、これは意図的なものです。を追加する-2と、それが文字列として解釈され、投稿の名前などとして解釈されるようになります。http://yoursite/?p=152912それ以外の場合、この投稿 ID が存在しない場合、表示しようとして404 になります。

これまでに見つけた唯一の解決策は、数字の名前を避けることです。

(内部的にはページや画像も含めてすべてが投稿であるため、投稿を書きました)

編集:

この動作を導入したチケットを見つけました。

于 2013-02-01T12:15:56.997 に答える
0

そのパーマリンクの投稿がまだないことを確認してください。その投稿にパーマリンクがすでに存在する場合、WordPressは-2パーマリンクに追加します。ゴミもチェックしてください。

于 2013-02-01T12:12:14.513 に答える