問題の概要
Advanced Custom Fieldsプラグインを使用すると、投稿を追加または編集するためのフォームを表示 (新しいタブで開く)できます。次のようなコードを使用して特定の投稿を作成するためにカスタマイズすることもできます:
$id = 12; acf_form(array( 'post_id' => 'new_post', 'post_title' => true, 'field_groups' => array( $id ) , 'new_post' => array( 'post_type' => 'post', 'post_status' => 'publish' ), 'submit_value' => 'add post' ));
ただし、このフォームを使用してセカンダリ言語でコンテンツを送信することはできません。
回避策
この問題はACFML 1.9.3で修正されました。 更新するとサイト上の問題は解決するため、この回避策が必要になるのは、まだ更新できない場合のみです。
セカンダリ言語でこのフォームを機能させるには、コードを少し変更してwpml_object_idフィルターを使用する必要があります。
$id = 12; $transid = apply_filters( 'wpml_object_id', $id , 'acf-field-group' ); acf_form(array( 'post_id' => 'new_post', 'post_title' => true, 'field_groups' => array( $transid ) , 'new_post' => array( 'post_type' => 'post', 'post_status' => 'publish' ), 'submit_value' => 'add post' ));
wpml_object_idフィルターはフィールドグループIDを取得し、各言語に翻訳します。これにより、フォームからコンテンツを正常に送信できるようになります。