カスタム投稿タイプのリビジョンを保存しようとしています。これは私の投稿が親を持っているかどうかを確認する必要があります:
function save_revision( $post ) {
if ( $post['submitted'] == true ) {
$parent_id = wp_is_post_revision( $post['post_id'] );
...
}
} add_action('init', 'save_revision');
問題は、そのpost_idに親の投稿があることがわかっていても、$ parent_idが常にfalseになることです。
どんな助けでも評価されます、私はこれを永久に働かせるようにしようとしていました。
それは簡単です:$post
がリビジョンではない場合、wp_is_post_revision()
はfalseを返します。関数の名前を読むだけであなたに理由がわかります。 wp_is_post_revision()
は、与えられた投稿がリビジョンである場合にのみ親投稿IDを返します(リビジョンは常に親投稿を持ちます)。 $post
がリビジョンかどうかをチェックせずに、$post
の親投稿IDを取得したいようです。
別の投稿の親投稿IDを取得するには、 wp_get_post_parent_id()
を使用します。
function save_revision( $post ) {
if ( $post['submitted'] == true ) {
$parent_id = wp_get_post_parent_id( $post['post_id'] );
...
}
}
add_action('init', 'save_revision');
私はこれが古いスレッドであることを知っています、しかし将来の参考のために - Wordpressの用語「改訂」は少し混乱しています。更新版や改訂版ではなく、古いバージョンです。最新版は「親」です。
したがって、現在のバージョンの投稿に対して関数wp_is_revision_post()
を呼び出している場合、現在の投稿は「リビジョン」とは見なされないため、常にfalse
が返されます(そしてwp_get_post_parent_id()
はNULL
が返されます)。あなたは実際のリビジョンでそれを呼ぶ必要があるでしょう(それはポストの現在のバージョンと異なるIDを持つでしょう)。