カスタム投稿タイプが変更されるたびに関数を呼び出したい。公開、更新、または削除します。その関数では、そのカスタム投稿タイプからすべての投稿をフェッチし、ファイルにエクスポートするjsonファイルを作成します。
add_action( 'transition_post_status', 'get_resources_data', 10, 3 );
function get_resources_data($new_status, $old_status, $post ) {
if ($post->post_type == 'resources') {
$args = array (
'post_type' => 'resources',
'post_status' => 'publish',
'posts_per_page' => -1
);
$queryResults = new WP_Query( $args );
if ( $queryResults->have_posts() ) {
//do my stuff here
//fetch acf fields with get_field()
//create json file
//export json file
}
}
}
問題は、カスタム投稿タイプに、JSONファイルに含めるいくつかの高度なカスタムフィールドがあることです。ただし、新しい投稿が作成されると、すべてのACFはnullになり、タイトルや作成データなどのフィールドは使用可能になります。投稿を更新すると、すべてのACFがフェッチされます。
私の印象ではtransition_post_status
、ACFがデータベースに保存される前にフックされています。別のアクションを使用する必要がありますか、それとも別の方法で実行する必要がありますか?
ACFは、まさにそのためのアクションフックを実際に提供します。
add_action('acf/save_post', 'get_resources_data');
-優先度を10未満に設定した場合、アクションはデータが保存される前に適用されます。prioを発行した場合、または優先度が10を超えた場合、アクションはデータの保存後に適用されます。
フックの詳細については、https://www.advancedcustomfields.com/resources/acf-save_post/をご覧ください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加