• 解決済 sola

    (@solatc)


    現在ファイルキャッシュシステムを利用しておりますが、
    特定記事投稿時に、関連記事のファイルキャッシュを削除すべく、
    フック ‘post_updated’ 内で特定記事が更新されたか否かを判別し、
    関連記事を wp_update_post() する事でキャッシュをクリアにする処理を導入しています。
    (導入しているファイルキャッシュシステム「Quick Cache」は記事が更新されたタイミングでキャッシュを破棄する仕組みを持っています。)

    現在、上記の流れは上手く動作しているのですが、
    フック ‘post_updated’ 内で wp_update_post() を実行すると、
    特定記事の post_meta が全て wp_update_post() 対象の関連記事にも複製されてしまい、困っています。

    意図した通りに動かす(特定記事の post_meta を関連記事に複製させない)為にはどうすべきでしょうか?

    ちなみに、
    1. wp_update_post() の具体的な記述は以下の通りです。

    wp_update_post( array( 'ID' => '2' ) );

    2. 特定記事で使用しているカスタムフィールドは関連記事で用いておりませんでした。

    3. フック ‘edit_post’ 内で wp_update_post() を実行した場合でも、同じような挙動となりました。

    よろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 私はこのプラグインを利用していないので(他にこのフォーラムでそのプラグインを利用している方はよくいるので)あてにならなかったらそっちを待ってください、って感じですが、

    wp_update_postは使わずに代わりにclean_post_cacheアクションを使うとどうなりますか?

    do_action('clean_post_cache',$post_id);
    トピック投稿者 sola

    (@solatc)

    # Hinaloe 様

    ご回答頂きありがとうございます。

    wp_update_postは使わずに代わりにclean_post_cacheアクションを使うとどうなりますか?

    ‘clean_post_cache’ フックはキャッシュが削除されたタイミングで実行されるようですね。

    今回はキャッシュを能動的に削除する処理を入れることが目的の為、ご回答頂いたような、キャッシュが削除されたタイミングを取得する必要は無いと考えます。

    (明示的にキャッシュそのものを削除する関数などがあれば話が早いのですが…)

    こんにちは

    ‘clean_post_cache’ フックはキャッシュが削除されたタイミングで実行されるようですね。

    少し興味があったので、Hinaloe さんが紹介してくれていた hook をテストしてみたのですが、

    http://tenman.info/labo/snip/archives/5551

    投稿を、保存すると スクリーンショットのようなコメントが出て、キャッシュは 破棄されているように見えるのですが、

    キャッシュの確認は、メッセージをソースに出力する設定で、クロームでログインして、投稿を保存し、同時にfirefoxで未ログイン状態で、ソースのメッセージを確認しています。

    キャッシュが削除されたタイミング

    という事について、もう少し教えていただけますか?

    トピック投稿者 sola

    (@solatc)

    # nobita 様

    ご回答頂きありがとうございます。

    こちらで再度調査致します。

    よろしくお願い申し上げます。

    トピック投稿者 sola

    (@solatc)

    # Hinaloe 様
    # nobita 様

    お世話になっております。

    当方が do_action() を add_action() と読み違えていた関係で、認識にズレが生じてしまった事、お詫び致します。

    テストコードを書いて動作させてみましたが、問題なく明示的にキャッシュをクリアする処理を実行する事が出来ました。
    お騒がせ致しました。

    これにて解決と致します。

    お二方ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「フック 'post_updated' 内で実行した wp_update_post() の挙動について」には新たに返信することはできません。