Lägga till anpassade WordPress-pluginlänkar
Om du någonsin har byggt ett anpassat plugin för dig själv eller för någon annan, så har du troligen gjort något med WordPress-plugin-länkarna även om det bara tillhandahåller författareinformation en URL till startsidan för plugin-programmet.
Och du vet vad jag pratar om: Det här är länkarna som visas under namnet på plugin-programmet.
Enligt kodreferensen är denna information:
Insticksprogrammets metadata, inklusive version, författare, författare-URI och plugin-URI.
Ibland kan du dock upptäcka att du vill lägga till eller ändra länkarna. Det vill säga, du kan lägga till dina egna anpassade länkar för att visas i listan nedan.
WordPress plugin länkar
I kärnan hänvisas till WordPress-plugin-länkarna som plugin-metaraden (eller kanske plugin-metadataraden skulle vara mer lämplig).
Oavsett vilket är det en mängd information som har samlat dem renderad på front-end när WordPress vill visa upp något. Du kan snabbt lägga till anpassad information genom att göra något så här :
<?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;
}
Men detta lämnar ett par saker att önska. Nämligen:
- det finns ingen säkerhet kring uppmärkningen (och du kanske kan göra ett ärende som det inte behöver finnas om du är den som ansvarar för det),
- det finns ingen tillgänglighet runt ankaret,
För att mildra detta kan koden uppdateras till detta :
<?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;
}
Och om du verkligen vill bli kreativ kan du använda PHP:s array_splice – metod för att placera HTML-koden var du vill. Utöver det kanske du vill lägga till en skyddsklausul för ett specifikt plugin genom att använda något som:
basename(plugin_dir_path(dirname(__FILE__, 2)));
Och kontrollera värdet av resultatet. Bara returnera den inkommande arrayen om den inte är lika med namnet på din plugin.
Detta är dock utanför ramarna för vad vi siktar på att göra. Ovanstående borde vara tillräckligt för att du ska komma igång.