2011-11-28 20 views
0

私がしたいこと: WordPressでは、投稿のカスタムフィールド値を編集して古い値と新しい値を取得し、比較します。WordPress:投稿が更新される前にカスタムフィールド値を取得

私が今すぐ入手するもの: 私は新しい価値しか得られません。私はpre_post_updateアクションにフックし、私はget_post_meta()(およびhttp://codex.wordpress.org/Custom_Fieldsに記載されている関連する機能の束)を使用して値を取得します。

私はまた、などpost_contentの古い値を返すことができget_post()post_titleを試みたが、カスタムフィールド値をget_post()含まれていません。

pre_post_updateフックが起動した時点で、値はまだデータベースに保存されていないと思いますか?私がポストタイトルなどの古い価値を得ることができるという事実はそれを証明します。次に、カスタムフィールドの古い値を取得する方法がいくつかあります。

カスタムフィールドの古い値と新しい値を比較する他の方法を指摘できれば歓迎されます。

事前に感謝します。

+0

私もこれをやりたいと思っています。save_postクエリで新しい値を更新する前にデータベースにクエリを行うことを考えていました。ちょっと冗長なので、私はまだもっと良い方法を探しています。 –

答えて

1

古いカスタムフィールドを新しいものと比較することはできません。これを更新すると、dbの "wp_post_meta"テーブルにも書き直されるためです。あなたは新しいものの古い価値を失います。

1

ピギーがポイントを作っています。それは上書きされます。古いキーと新しいキーの2つのキーでカスタムフィールドを使用し、古いキーと古いキーの両方に新しいキーを割り当てます。

+0

私は元の投稿で言ったように、値がデータベースに保存される前にアクションをフックしたい。あなたはWordPressにそのようなフックがないと言っていますか? – Betty

+0

私が知る限りはありません。おそらく、pre_update_post関数のフックでDBにアクセスすることができます。 – bingjie2680

+0

データベースを直接操作することは、私が好きなものではありません(私はDB初心者> _ <)。私はあなたの2つの鍵の方法で遊んで、それが私のニーズを満たすことができるかどうかを見極めるつもりです。とにかくありがとうございました。 – Betty