WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Как в quick_edit_custom_box получить переменную global $post ?

Как при работе хуков:

add_action( 'bulk_edit_custom_box', 'quick_edit_custom_box_video', 10, 2 );
add_action( 'quick_edit_custom_box', 'quick_edit_custom_box_video', 10, 2 );

https://codex.wordpress.org/Plugin_API/Action_Reference/quick_edit_custom_box

получить глобальную переменную global $post или ID соответствующего поста?

Есть варианты получения через jQuery и Ajax, но надо получить именно при работе этих хуков, так как выводимые поля надо заполнить данные, например из мета полей соответствующего поста.

0
avense4 7 месяцев назад
  • 0
    stepan1187 cайт: www.weblancer.net/users/stepanko/?affili...

    https://codex.wordpress.org/Plugin_API/Action_Reference/bulk_edit_custom_box

    В примере явно прописано:

    add_action( 'wp_ajax_save_bulk_edit_book', 'save_bulk_edit_book' );
    function save_bulk_edit_book() {
    	// TODO perform nonce checking
    	// get our variables
    	$post_ids           = ( ! empty( $_POST[ 'post_ids' ] ) ) ? $_POST[ 'post_ids' ] : array();

    В $post_ids как раз и будут ID постов, которые редактируются.

    stepan 7 месяцев назад

    https://codex.wordpress.org/Plugin_API/Action_Reference/quick_edit_custom_box
    Здесь пример будет получше.

    avense 7 месяцев назад

    Это:

    Saving Data
    Unlike quick edit's data saving process, we'll save via Ajax calls.

    А мне надо получить ID текущей записи еще при выводе полей:
    https://codex.wordpress.org/Plugin_API/Action_Reference/quick_edit_custom_box#Examples

    add_action( 'quick_edit_custom_box', 'display_custom_quickedit_book', 10, 2 );
    
    function display_custom_quickedit_book( $column_name, $post_type ) {
    	static $printNonce = TRUE;
    	if ( $printNonce ) {
    		$printNonce = FALSE;
    		wp_nonce_field( plugin_basename( __FILE__ ), 'book_edit_nonce' );
    	}
    
    	?>
    	<fieldset class="inline-edit-col-right inline-edit-book">
    	  <div class="inline-edit-col column-<?php echo $column_name; ?>">
    		<label class="inline-edit-group">
    		<?php 
    		// Например здесь получить ID записи ... ?
    		 switch ( $column_name ) {
    		 case 'book_author':
    			 ?><span class="title">Author</span><input name="book_author" /><?php
    			 break;
    		 case 'inprint':
    			 ?><span class="title">In Print</span><input name="inprint" type="checkbox" /><?php
    			 break;
    		 }
    		?>
    		</label>
    	  </div>
    	</fieldset>
    	<?php
    }
    avense 7 месяцев назад

    Похоже нельзя там получить ID при выводе, что странно... зачем такой обход с использованием кучи кода и js скриптов..?
    Смотрю в плагине WooCommerce тоже используются js для заполнения полей при быстром редактировании.

    stepan 7 месяцев назад

    Вы все верно подметили.
    Программно переменную ID поста не получить.
    Только через JS: так и кодекс говорит и на stackoverflow.com такие же ответы.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.