Добавление пользовательских ссылок на плагины WordPress
Если вы когда-либо создавали собственный плагин для себя или для кого-то еще, то вы, вероятно, что-то делали со ссылками на плагины WordPress, даже если это просто предоставление информации об авторе URL-адрес домашней страницы для плагина.
И вы знаете, о чем я говорю: это ссылки, которые появляются под названием плагина.
Согласно ссылке на код, эта информация:
Метаданные подключаемого модуля, включая версию, автора, URI автора и URI подключаемого модуля.
Однако иногда вы можете обнаружить, что хотите добавить или изменить ссылки. То есть вы можете добавить свои собственные пользовательские ссылки, чтобы они отображались в списке ниже.
Ссылки на плагины WordPress
В ядре ссылки на плагины WordPress называются строкой метаданных плагина (или, возможно, строка метаданных плагина была бы более подходящей).
Несмотря на это, это массив информации, который собирает их во внешнем интерфейсе всякий раз, когда WordPress хочет что-то продемонстрировать. Вы можете быстро добавить пользовательскую информацию, выполнив что-то вроде этого :
<?php
add_action('plugin_row_meta', __NAMESPACE__. 'addCustomPluginLinks');
/**
* @param array $metaData the array of metadata that appears in the row of plugin information
*
* @return array $metaData the modified array that includes the custom anchor
*/
function addCustomPluginLinks(array $metaData): array
{
$metaData[] = '<a href="https://google.com">Example Link</a>';
return $metaData;
}
Но это оставляет желать лучшего. А именно:
- вокруг разметки нет безопасности (и, возможно, вы могли бы доказать, что в ней нет необходимости, если вы отвечаете за нее),
- вокруг якоря нет доступа,
Чтобы смягчить это, код можно обновить до этого :
<?php
add_action('plugin_row_meta', __NAMESPACE__. 'addCustomPluginLinks');
/**
* @param array $metaData the array of metadata that appears in the row of plugin information
*
* @return array $metaData the modified array that includes the custom anchor
*/
function addCustomPluginLinks(array $metaData): array
{
// Safely build the markup for the new anchor.
$html = wp_kses(
'<a href="https://google.com" target="_blank" data-title="Example Link" aria-label="Example Link">Example Link</a>',
[
'a' => [
'href' => [],
'target' => [],
'aria-label' => [],
'data-title' => [],
],
]
);
// Insert the markup at the end of the array.
$metaData[] = $html;
return $metaData;
}
И если вы действительно хотите проявить творческий подход, вы можете использовать PHP- метод array_splice, чтобы разместить HTML там, где хотите. Кроме того, вы можете добавить защитное предложение для конкретного плагина, используя что-то вроде:
basename(plugin_dir_path(dirname(__FILE__, 2)));
И проверка значения результата. Просто верните входящий массив, если он не равен имени вашего плагина.
Однако это выходит за рамки того, что мы стремимся сделать. Вышеизложенного должно быть достаточно, чтобы вы начали.