plugin_action_links хук-фільтрWP 2.5.0

Дозволяє видалити/додати посилання, які відображаються під назвою кожного плагіну в таблиці плагінів в адмін-панелі (наприклад: Активувати, Деактивувати, Видалити).

Хук network_admin_plugin_action_links — такий самий хук, тільки буде використаний на сторінці налаштувань плагінів у адміністратора мережі сайтів.

Хук network_admin_plugin_action_links_(plugin_file)

За замовчуванням, адміністратор мережі сайтів має такі посилання: Активувати для мережі (Network Activate), Деактивувати для мережі (Network Deactivate), Редагувати (Edit) і Видалити (Delete).

Ще фільтри пов’язані зі зміною даних у таблиці плагінів:

Використання

add_filter( 'plugin_action_links', 'wp_kama_plugin_action_links_filter', 10, 4);

/**
 * Function for `plugin_action_links` filter-hook.
 *
 * @param string[] $actions На array of plugin action links. By default this can include 'activate', 'deactivate', 'delete'. З Multisite active this can also include 'network_active' and 'network_only' items.
 * @param string $plugin_file Пакет до файлу plugin relative to plugins directory.
 * @param array $plugin_data На array of plugin data. See `get_plugin_data()` and the {@see 'plugin_row_meta'} filter for the list of possible values.
 * @param string $context Plugin context. Додатково це може бути 'all', 'active', 'inactive', 'recently_activated', 'upgrade', 'mustuse', 'dropins', 'search'.
 *
 * @return string[]
 */
function wp_kama_plugin_action_links_filter( $actions, $plugin_file, $plugin_data, $context ){

	// Filter...
	return $actions;
}
$actions
(масив)
Масив посилань. Сюди можна додати посилання.
$plugin_file
(рядок)
Шлях до файлу плагіна. Шлях передається не весь, а лише частина: від каталогу плагінів до файлу плагіна, включно:
plugin-name/plugin-file.php .
$plugin_data
(масив)
Масив даних плагіна.
$context
(рядок)
На якому підсторінці сторінки плагінів потрібно використовувати фільтр. Можливо: ‘All’, ‘Active’, ‘Inactive’, ‘Recently Activated’, ‘Upgrade’, ‘Must-Use’, ‘Drop-ins’, ‘Search’.

Приклади

0

#1 Додамо посилання на сторінку налаштувань плагіна

Припустимо, ми хочемо додати посилання на сторінку налаштувань плагіна, в таблицю плагінів на сторінці плагінів адмін-панелі. Такі посилання виводяться під назвою плагіна:

add_filter( 'plugin_action_links', 'wpcf_plugin_action_links', 10, 2);
function wpcf_plugin_action_links( $actions, $plugin_file ){
	if( false === strpos( $plugin_file, basename(__FILE__) ) )
		return $actions;

	$settings_link = '<a href="options-general.php?page='. basename(dirname(__FILE__)).'/options.php' .'">Settings</a>';
	array_unshift($actions, $settings_link);
	return $actions;
}

Ось що в нас вийде:

settings

0

#2 Використання фільтра plugin_action_links_{$plugin_file}

Те саме можна зробити, використавши аналогічний фільтр plugin_action_links_{$plugin_file} . Він використовується в тому ж місці, що й plugin_action_links . Тому найчастіше немає різниці який фільтр використовувати.

// Додамо посилання на сторінку налаштувань до таблиці плагінів
function plugin_settings_link($links) {
	$settings_link = '<a href="options-general.php?page=your_plugin_slug">Settings</a>';
	array_unshift($links, $settings_link);
	return $links;
}

$plugin_file = plugin_basename(__FILE__);
add_filter( "plugin_action_links_$plugin_file", 'plugin_settings_link');
0

#3 Використання фільтра plugin_row_meta

Щоб додати дані до метаданих плагіна. Посилання та текст під описом плагіна потрібно використовувати фільтр plugin_row_meta . Для прикладу, додамо посилання на сторінку налаштувань у метадані плагіна:

add_filter( 'plugin_row_meta', 'plugin_row_meta_1111', 10, 4);
function plugin_row_meta_1111( $meta, $plugin_file ){
	if( false === strpos( $plugin_file, basename(__FILE__) ) )
		return $meta;

	$meta[] = '<a href="options-general.php?page='. basename(dirname(__FILE__)).'/options.php' .'">Settings</a>';
	return $meta;
}

setting2

список змін

З версії 2.5.0Введено.
З версії 2.6.0The $context parameter був added.
З версії 4.9.0The ‘Edit’ link був removed з list of action links.

Де викликається хук

wp-admin/includes/class-wp-plugins-list-table.php 954

$actions = apply_filters( 'plugin_action_links', $actions, $plugin_file, $plugin_data, $context );

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *