Intereting Posts
Уведомить сайт WordPress, который я связал с ним Как я могу вставлять плагин комментариев на свой собственный сайт? WordPress Short code с дополнительным параметром PHP для программного удаления файла Отключить изменение размера изображения в определенных полях загрузки WordPress get_option () по проблеме AJAX Невозможно добавить класс в тег h2 Как вести активную медиа-галерею в пользовательском медиа-загрузчике WordPress Как добавить мои правила перезаписи в начале, перенаправить на нужную страницу и сбросить правила активации плагина? Что произойдет, если я удалю все строки, представляющие пост-ревизию, из таблицы сообщений в базу данных WordPress? Элементы подменю, которые больше не отображаются в навигации Как скрыть форму после успешного выполнения php Sql – поиск с использованием сериализованной концепции данных / лучшей базы данных Переадресация слишком много раз htacces, переключение на https Короткие замыкания на метаблоках

Как я могу связать post_row_actions () с пользовательской функцией действия

У меня есть настраиваемый тип типа сообщения ниже, и я хочу добавить настраиваемое действие строки, чтобы я мог «обновить» сообщение через панель администратора

class LeagueCpt { function __construct() { add_action( 'init', array(&$this,'registerLeagueCPT')); add_filter('post_row_actions', array(&$this,'post_row_actions'), 0, 2); } function registerLeagueCPT() { $leagueLabels = array( 'name' => _x( 'Leagues', 'league' ), 'singular_name' => _x( 'League', 'league' ), 'add_new' => _x( 'Add New', 'league' ), 'add_new_item' => _x( 'Add New League', 'league' ), 'edit_item' => _x( 'Edit League', 'league' ), 'new_item' => _x( 'New League', 'league' ), 'view_item' => _x( 'View League', 'league' ), 'search_items' => _x( 'Search Leagues', 'league' ), 'not_found' => _x( 'No league found', 'league' ), 'not_found_in_trash' => _x( 'No leagues found in Trash', 'league' ), 'parent_item_colon' => _x( 'Parent League:', 'league' ), 'menu_name' => _x( 'Leagues', 'league' ), ); $leagueArgs = array( 'labels' => $leagueLabels, 'hierarchical' => false, 'description' => 'League Details', 'supports' => array( 'title','editor','excerpt','thumbnail','custom-fields','page-attributes','comments'), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post' ); register_post_type('league', $leagueArgs ); } 

Это код, который регистрирует действие строки

 function post_row_actions($actions, $post) { $actions = array_merge($actions, array( 'update' => sprintf('<a href="%s">Update</a>', wp_nonce_url(sprintf('edit.php?post_type=league&action=update&post_id=%d',$post->ID), 'abc')) )); return $actions; } 

Я определил функцию update () в том же php-файле, в котором я планирую выполнять реальную работу

 function update() { // do some custom update stuff on the post content } 

Моя проблема заключается в том, как я могу убедиться, что запрос URL-адреса с действием update вызывает функцию выше?

Я использовал следующие ресурсы

Пользовательские действия столбца

http://wordpress.org/support/topic/trying-to-add-custom-post_row_actions-for-custom-post-status

Действия строки для пользовательских типов сообщений?

http://wordpress.org/support/topic/replacement-for-post_row_actions

http://www.ilovecolors.com.ar/saving-custom-fields-quick-bulk-edit-wordpress/

Solutions Collecting From Web of "Как я могу связать post_row_actions () с пользовательской функцией действия"

Вам придется использовать метод $_GET . Здесь я подключаюсь к admin_head-{$pagenow} , в зависимости от вашей функциональности, возможно, вам нужно будет подключиться к load-{$pagenow} .

Префикс имен ваших переменных не должен зависеть от каких-либо внутренних компонентов WordPress, в этом случае my-update для имени действия:

 edit.php?post_type=league&action= my-update &post_id 

Образец кода:

 add_action( 'admin_head-edit.php', 'custom_get_http_wpse_82761' ); function custom_get_http_wpse_82761() { global $typenow; if( 'league' != $typenow ) return; if( isset( $_GET['my-update'] ) ) { // do stuff } } 

Я столкнулся с этим сообщением о том, как сделать-i-best-handle-custom-plugin-page-действия, которые я нашел очень полезными, поскольку действие сопоставляется непосредственно с функцией через hookpress wordpress. Единственная проблема – это только поддержка html-форм, которые отправляют запрос POST. Я хочу сохранить ссылку URL, которую позволяют post_row_actions.

Моим wordaround является использование jQuery для преобразования данных запроса GET URL-адреса в запрос POST. Я добавил атрибут id для href и добавил следующий код JQuery. Он берет исходный URL-адрес и затем выполняет запрос POST.

 jQuery(document).ready( function() { jQuery("a#bhaa_league_populate").bind("click", function(event) { event.preventDefault(); var url = jQuery(this).attr("href"); var p = url.split('?'); var action = p[0]; var params = p[1]; jQuery.post( action, params); }); }); 

Это позволяет мне лучшее из обоих миров.