acf_form_attachment{} │ ACF 1.0
Хуков нет.
Использование
$acf_form_attachment = new acf_form_attachment(); // use class methods
Методы
- public __construct()
- public admin_enqueue_scripts()
- public admin_footer()
- public edit_attachment( $form_fields, $post )
- public save_attachment( $post, $attachment )
Код acf_form_attachment{} acf form attachment{} ACF 6.0.4
<?php class acf_form_attachment { /* * __construct * * This function will setup the class functionality * * @type function * @date 5/03/2014 * @since 5.0.0 * * @param n/a * @return n/a */ function __construct() { // actions add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); // render add_filter( 'attachment_fields_to_edit', array( $this, 'edit_attachment' ), 10, 2 ); // save add_filter( 'attachment_fields_to_save', array( $this, 'save_attachment' ), 10, 2 ); } /* * admin_enqueue_scripts * * This action is run after post query but before any admin script / head actions. * It is a good place to register all actions. * * @type action (admin_enqueue_scripts) * @date 26/01/13 * @since 3.6.0 * * @param N/A * @return N/A */ function admin_enqueue_scripts() { // bail early if not valid screen if ( ! acf_is_screen( array( 'attachment', 'upload' ) ) ) { return; } // load acf scripts acf_enqueue_scripts( array( 'uploader' => true, ) ); // actions if ( acf_is_screen( 'upload' ) ) { add_action( 'admin_footer', array( $this, 'admin_footer' ), 0 ); } } /* * admin_footer * * This function will add acf_form_data to the WP 4.0 attachment grid * * @type action (admin_footer) * @date 11/09/2014 * @since 5.0.0 * * @param n/a * @return n/a */ function admin_footer() { // render post data acf_form_data( array( 'screen' => 'attachment', 'post_id' => 0, ) ); ?> <script type="text/javascript"> // WP saves attachment on any input change, so unload is not needed acf.unload.active = 0; </script> <?php } /* * edit_attachment * * description * * @type function * @date 8/10/13 * @since 5.0.0 * * @param $post_id (int) * @return $post_id (int) */ function edit_attachment( $form_fields, $post ) { // vars $is_page = acf_is_screen( 'attachment' ); $post_id = $post->ID; $el = 'tr'; // get field groups $field_groups = acf_get_field_groups( array( 'attachment_id' => $post_id, 'attachment' => $post_id, // Leave for backwards compatibility ) ); // render if ( ! empty( $field_groups ) ) { // get acf_form_data ob_start(); acf_form_data( array( 'screen' => 'attachment', 'post_id' => $post_id, ) ); // open echo '</td></tr>'; // loop foreach ( $field_groups as $field_group ) { // load fields $fields = acf_get_fields( $field_group ); // override instruction placement for modal if ( ! $is_page ) { $field_group['instruction_placement'] = 'field'; } // render acf_render_fields( $fields, $post_id, $el, $field_group['instruction_placement'] ); } // close echo '<tr class="compat-field-acf-blank"><td>'; $html = ob_get_contents(); ob_end_clean(); $form_fields['acf-form-data'] = array( 'label' => '', 'input' => 'html', 'html' => $html, ); } // return return $form_fields; } /* * save_attachment * * description * * @type function * @date 8/10/13 * @since 5.0.0 * * @param $post_id (int) * @return $post_id (int) */ function save_attachment( $post, $attachment ) { // bail early if not valid nonce if ( ! acf_verify_nonce( 'attachment' ) ) { return $post; } // bypass validation for ajax if ( acf_is_ajax( 'save-attachment-compat' ) ) { acf_save_post( $post['ID'] ); // validate and save } elseif ( acf_validate_save_post( true ) ) { acf_save_post( $post['ID'] ); } // return return $post; } }