Mukautettujen WordPress-laajennuslinkkien lisääminen
Jos olet joskus rakentanut mukautetun laajennuksen itsellesi tai jollekin muulle, olet todennäköisesti tehnyt jotain WordPress-laajennuksen linkeillä, vaikka se olisi vain antanut tekijätietoja laajennuksen kotisivun URL-osoitteen.
Ja tiedät mistä puhun: Nämä ovat linkit, jotka näkyvät laajennuksen nimen alla.
Koodiviitteen mukaan nämä tiedot ovat:
Laajennuksen metatiedot, mukaan lukien versio, tekijä, tekijän URI ja laajennuksen URI.
Joskus saatat kuitenkin huomata, että haluat lisätä tai muokata linkkejä. Eli voit lisätä omia mukautettuja linkkejäsi näkymään alla olevassa luettelossa.
WordPress-laajennuslinkit
Ytimessä WordPress-laajennuslinkkejä kutsutaan laajennuksen metariviksi (tai ehkä laajennuksen metatietorivi olisi sopivampi).
Siitä huolimatta se on joukko tietoja, jotka on koottu, ja ne renderöidään käyttöliittymässä aina, kun WordPress haluaa esitellä jotain. Voit lisätä mukautettuja tietoja nopeasti tekemällä jotain seuraavasti :
<?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;
}
Mutta tämä jättää pari asiaa toivomisen varaa. Nimittäin:
- merkinnöissä ei ole turvallisuutta (ja ehkä voit tehdä asian, jonka ei tarvitse olla, jos olet vastuussa siitä),
- ankkurin ympärillä ei ole pääsyä,
Tämän lieventämiseksi koodi voidaan päivittää tähän :
<?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;
}
Ja jos todella haluat olla luova, voit käyttää PHP:n array_splice – menetelmää sijoittaaksesi HTML:n minne haluat. Tämän lisäksi saatat haluta lisätä suojalausekkeen tietylle laajennukselle käyttämällä jotakin, kuten:
basename(plugin_dir_path(dirname(__FILE__, 2)));
Ja tuloksen arvon tarkistaminen. Palauta vain saapuva joukko, jos se ei ole sama kuin laajennuksen nimi.
Tämä on kuitenkin tavoitteemme ulkopuolella. Yllä olevan pitäisi riittää aloittamiseen.