De WordPress Admin aanpassen helptekst

In deel 2 van deze zelfstudie heb ik u laten zien hoe u aangepaste metaboxen kunt toevoegen aan het WordPress-dashboard, dat u kunt gebruiken om helptekst voor uw klanten of gebruikers te maken.

Maar wat als u Help-tekst op afzonderlijke bewerkingsschermen wilt weergeven? In deze zelfstudie laat ik u zien hoe u dat precies doet.

In deze tutorial leer je hoe je:

  1. Voeg een metabox toe aan het bewerkingsscherm voor help-tekst
  2. Voeg extra metaboxen toe in verschillende posities
  3. Maak een dummy metabox om Help-tekst boven aan het bewerkingsscherm weer te geven

Ik ga een plug-in maken om dit te doen - als je al een plug-in hebt gemaakt na deel 1 tot en met 3 van deze serie te volgen, geef je er misschien de voorkeur aan om de code uit deze tutorial aan die plug-in toe te voegen, waardoor je één plug-in met alle uw beheerdersaanpassingen.


Wat u nodig hebt om deze zelfstudie te voltooien

Om deze tutorial te voltooien, hebt u nodig:

  • Een WordPress-installatie
  • Toegang tot de plug-insmap van uw site om uw plug-in toe te voegen
  • Een teksteditor om uw plug-in te maken

De plug-in instellen

Aan het begin van mijn plug-in voeg ik de volgende regels toe:

 / * Plugin Name: Wptuts + Customize the Admin Part 4 - Help Text Plugin URI: http://rachelmccollin.co.uk Beschrijving: Deze plugin ondersteunt de tutorial in Wptuts +. Het voegt helptekst toe aan het WordPress-bewerkingsscherm. Versie: 1.0 Auteur: Rachel McCollin Auteur URI: http://rachelmccollin.com Licentie: GPLv2 * /

1. Een hulp-metabox toevoegen aan het berichtbewerkingsscherm

Om een ​​metabox met help-tekst toe te voegen, gebruikt u de add_meta_box () functie die u ook zou gebruiken als u een metabox aan het maken was voor postmetadata of in een instellingenscherm. Deze functie vergt enkele parameters:

 

De parameters zijn:

  • $ id - de unieke ID voor de metabox.
  • $ title - de titel die aan gebruikers wordt getoond.
  • $ callback - de callback-functie die de inhoud van de metabox definieert.
  • $ post_type - het berichttype waarvan het bewerkingsscherm de metabox zal weergeven. Laat dit leeg om de metaboxen toe te voegen aan alle bewerkingsschermen van het posttype of geef aan welk berichttype u wilt targeten.
  • $ context - waar in het bewerkingsscherm de metabox moet verschijnen - 'normaal', 'geavanceerd' of 'zijkant'. De standaardwaarde is 'geavanceerd' waarmee de metabox in het hoofdgebied van het scherm wordt geplaatst.
  • $ prioriteit - binnen de context die u hebt gedefinieerd, de prioriteit voor deze metabox ('High''kern''standaard' of 'laag'). Dit is handig als u meerdere metaboxen toevoegt.
  • $ callback_args - argumenten om door te geven aan uw callback-functie (optioneel)

Dus om een ​​metabox toe te voegen aan het hoofdgedeelte van het berichtbewerkingsscherm voor alleen berichten, voeg ik het volgende toe aan mijn plug-in:

 // Voeg metabox toe onder bewerkingspaneel functie wptutsplus_metabox_after_title () add_meta_box ('after-title-help', 'Gebruik dit scherm', 'wptutsplus_after_title_help_metabox_content', 'post', 'advanced', 'high');  add_action ('add_meta_boxes', 'wptutsplus_metabox_after_title');

Dit voegt een lege metabox toe, die nog niet zal werken omdat ik de callback-functie niet heb toegevoegd. Dit is als volgt:

 // callback-functie om metabox-functie te vullen wptutsplus_after_title_help_metabox_content () ?> 

Gebruik dit scherm om nieuwe artikelen toe te voegen of bestaande te bewerken. Zorg ervoor dat u op 'Publiceren' klikt om een ​​nieuw artikel te publiceren nadat u het heeft toegevoegd, of op 'Bijwerken' om eventuele wijzigingen op te slaan.

Dit voegt nu een metabox toe aan mijn postbewerkingsscherm, zoals weergegeven in de schermafbeelding:

Zoals u kunt zien, heb ik enkele van de andere metaboxen verwijderd die normaal gezien worden in het berichtbewerkingsscherm (zoals fragmenten en discussie), maar mijn nieuwe metabox bevindt zich onder het bewerkingsvenster en is daarom niet erg zichtbaar. Het is onmogelijk om het te gebruiken add_meta_box () functie om een ​​metabox boven het hoofdbewerkingsvenster toe te voegen zonder gebruik te maken van een jQuery-oplossing die het hoofdbewerkingsvenster naar beneden verplaatst en waarvan ik denk dat dit te veel is voor dit probleem. Dus welke alternatieven heb ik?

  1. Ten eerste kan ik een metabox toevoegen boven de metabox 'Publiceren', wat voor de gebruiker duidelijker zal zijn.
  2. Als alternatief kan ik vals spelen en de edit_form_after_title action hook om een ​​nep-metabox toe te voegen boven het bewerkingsvenster.

Ik begin met de eerste optie: het toevoegen van een metabox rechts boven de metabox 'Publiceren'.


2. Een metabox toevoegen aan de rechterkant van het bewerkingsscherm

Om een ​​metabox rechtsboven in het scherm te gebruiken gebruik ik de add_meta_box () functioneren op dezelfde manier als voorheen, waarbij een aantal parameters is gewijzigd. Ik gebruik ook een andere callback-functie om de metabox met verschillende inhoud te vullen.

Voeg in uw plug-in het volgende toe:

 // Voeg helptekst toe aan de rechterkant van het scherm in een metabox-functie wptutsplus_metabox_top_right () add_meta_box ('after-title-help', 'Publishing and Saving Changes', 'wptutsplus_top_right_help_metabox_content', 'post', 'side', 'high') ;  // callback-functie om metabox-functie te vullen wptutsplus_top_right_help_metabox_content () ?> 

Klik hieronder op 'Publiceren' om een ​​nieuw artikel te publiceren zodra je het hebt toegevoegd of op 'Bijwerken' om eventuele wijzigingen op te slaan.

Dit voegt een kleine metabox met korte instructies toe - als ik veel meer tekst zou toevoegen, zou het de metaboxen eronder te ver door het scherm verplaatsen. U kunt het resultaat zien in de screenshot:

Opmerking: ik heb de functie voor de metabox in het hoofdgebied van het scherm besproken voordat ik deze nieuwe metabox toevoeg. Daarom kun je deze niet zien in de schermafbeelding.


3. Een 'nep' metabox toevoegen boven het bewerkingsvenster

Dus het toevoegen van een kleine metabox in de rechterbovenhoek van het scherm is vrij eenvoudig - maar wat als ik een metabox linksboven wil hebben, boven het bewerkingsvenster??

Om dit te doen, gebruikt u de add_meta_box () functie, maar gebruik de edit_form_after_title hook, waarmee inhoud wordt ingevoegd na de titel van het bericht en vóór het bewerkingsvenster. Ik voeg een functie toe aan die haak om de markup te definiëren die aan het scherm wordt toegevoegd, en ik gebruik klassen in mijn markup om het uiterlijk van een metabox te repliceren.

Voeg in uw plug-in het volgende toe:

 functie wptutsplus_text_after_title ($ post_type) ?> 

Via dit scherm

Gebruik dit scherm om nieuwe artikelen toe te voegen of bestaande te bewerken. Zorg ervoor dat u op 'Publiceren' klikt om een ​​nieuw artikel te publiceren nadat u het heeft toegevoegd, of op 'Bijwerken' om eventuele wijzigingen op te slaan.

Dit voegt wat markup toe aan het bewerkingsscherm dat veel op een metabox lijkt, omdat ik de .brievenbus en .binnen klassen:

Er is echter één probleem met deze markup - het zal op het bewerkingsscherm verschijnen voor elk type bericht. Omdat ik de. Niet gebruik add_meta_box () functie, ik heb niet de luxe van de $ post_type parameter. Dus in plaats van dit te gebruiken, voer ik een vinkje uit voor de bewerkingspagina waar we aan toe zijn voordat de markup wordt uitgevoerd.

Omdat ik in de WordPress-backend zit, kan ik de standaardvoorwaardelijke tags die ik in een sjabloonbestand zou gebruiken niet gebruiken om mijn locatie te controleren, maar ik kan de get_current_screen () functie om te identificeren op welk bewerkingsscherm ik zit.

De get_current_screen () functie retourneert een array, die onder andere het berichttype van het huidige scherm bevat. Ik kan dit gebruiken om te controleren of het berichttype dat wordt bewerkt, is 'post'.

Voeg binnen je functie, boven de andere inhoud, het volgende toe:

 $ scherm = get_current_screen (); $ edit_post_type = $ scherm-> post_type; als ($ edit_post_type! = 'post') terugkomt; ?>

De volledige functie ziet er nu als volgt uit:

 // Voeg valse metabox toe boven bewerkingsvenster functie wptutsplus_text_after_title ($ post_type) $ screen = get_current_screen (); $ edit_post_type = $ scherm-> post_type; als ($ edit_post_type! = 'post') terugkomt; ?> 

Via dit scherm

Gebruik dit scherm om nieuwe artikelen toe te voegen of bestaande te bewerken. Zorg ervoor dat u op 'Publiceren' klikt om een ​​nieuw artikel te publiceren nadat u het heeft toegevoegd, of op 'Bijwerken' om eventuele wijzigingen op te slaan.

Dit zorgt ervoor dat de 'nep' metabox alleen wordt uitgevoerd op het bewerkingsscherm voor berichten en niet op het bewerkingsscherm voor andere berichttypen. U kunt deze functie dan herhalen voor verschillende berichttypen (zoals 'pagina' en 'Attachment', evenals uw eigen aangepaste berichttypes) om daar verschillende helptekst voor weer te geven.


Samenvatting

Het toevoegen van helptekst aan individuele bewerkingsschermen kan erg handig zijn voor gebruikers die niet terug willen naar het dashboard om hulp te krijgen.

In deze zelfstudie leer je hoe je metaboxen kunt toevoegen voor helptekst op bewerkingsschermen, en hoe je de. Kunt gebruiken edit_form_after_title haak om help-tekst direct boven het bewerkingsvenster toe te voegen.