Jeśli kiedykolwiek zbudowałeś niestandardową wtyczkę dla siebie lub dla kogoś innego, prawdopodobnie zrobiłeś coś z linkami do wtyczki WordPress, nawet jeśli jest to tylko dostarczanie informacji o autorze adresu URL strony głównej wtyczki.
I wiecie, o czym mówię: są to linki, które pojawiają się pod nazwą wtyczki.
Zgodnie z kodem referencyjnym te informacje to:
Metadane wtyczki, w tym wersja, autor, identyfikator URI autora i identyfikator URI wtyczki.
Czasami jednak może się okazać, że chcesz dodać lub zmodyfikować łącza. Oznacza to, że możesz dodać własne niestandardowe łącza, aby pojawiły się na poniższej liście.
Linki do wtyczek WordPress
W rdzeniu linki do wtyczek WordPress są określane jako wiersz meta wtyczki (lub być może bardziej odpowiedni byłby wiersz metadanych wtyczki).
Niezależnie od tego, jest to zestaw informacji, które są gromadzone i renderowane na interfejsie użytkownika, gdy WordPress chce coś zaprezentować. Możesz szybko dodać niestandardowe informacje, wykonując coś takiego :
<?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;
}
Ale to pozostawia kilka rzeczy do życzenia. Mianowicie:
- nie ma żadnych zabezpieczeń wokół znaczników (i być może mógłbyś zgłosić przypadek, w którym nie ma takiej potrzeby, jeśli jesteś tym odpowiedzialny),
- wokół kotwicy nie ma dostępu,
Aby to złagodzić, kod można zaktualizować do tego :
<?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;
}
A jeśli naprawdę chcesz być kreatywny, możesz użyć metody array_splice PHP, aby umieścić kod HTML w dowolnym miejscu. Ponadto możesz dodać klauzulę ochronną dla określonej wtyczki, używając czegoś takiego:
basename(plugin_dir_path(dirname(__FILE__, 2)));
I sprawdzanie wartości wyniku. Po prostu zwróć przychodzącą tablicę, jeśli nie jest ona równa nazwie Twojej wtyczki.
Jednak wykracza to poza zakres tego, co zamierzamy zrobić. Powyższe powinno wystarczyć, aby zacząć.