Det är roligt att du nämner MS Access och VBA! Logiken i programmering ändras aldrig, barasyntaxen. Om vi jämför med Access, så är WordPress “Hooks” (add_action) lite som “EventProcedures” (t.ex. On Load eller On Click) i ett formulär.
1. Kommentarsblocket (/** … */)
Precis som i VBA:s ‘ (apostrof), men för flera rader. Detta är din dokumentation så att du i framtiden vet varför du skapade denna “procedur”.
2. add_action(‘admin_bar_menu’, ‘aj_custom_404_admin_link’, 999);
- add_action: Detta är en “Hook”. Du talar om för WordPress: “När du gör X, kör även min kod”.
- ‘admin_bar_menu’: Detta är händelsen (eventet) – när den svarta toppmenyn ritas upp.
- ‘aj_custom_404_admin_link’: Namnet på din funktion (motsvarar namnet på en Sub i VBA).
- 999: Prioriteten. Ju högre siffra, desto senare körs den. 999 gör att din länk hamnar längst till höger, efter alla standardmenyer.
3. function aj_custom_404_admin_link($wp_admin_bar) {
- Detta är början på din funktion (tänk Public Sub aj_custom_…).
- $wp_admin_bar är ett objekt som skickas med, som innehåller alla metoder för att rita menyn.
4. if (!current_user_can(‘manage_options’)) { return; }
- Detta är din säkerhetsspärr (en If…Then Exit Sub).
- manage_options är WordPress-språk för “Administratör”. Om användaren inte är admin, avslutas funktionen direkt.
5. $args = array( … );
Här skapar du en matris (Array), vilket i VBA motsvaras av att sätta egenskaper för ett objekt.
- id: Ett unikt namn för HTML-elementet (ID).
- title: Vad som syns. Här lägger vi in en <span> med en Dashicon (WordPress inbyggda ikoner) + texten “404 Monitor”.
- href: Själva länken. admin_url() är en genial funktion som automatiskt räknar ut rätt sökväg oavsett vilken domän du flyttar sajten till med Duplicator.
- meta: Innehåller title (den text som dyker upp som en “tooltip” när du håller musen över länken).
6. $wp_admin_bar->add_node($args);
Detta är själva exekveringen. Du säger till meny-objektet: “Lägg till den här nya noden (länken) med de inställningar jag just skapade”.
Skillnaden mot VBA
I Access VBA arbetade du ofta direkt mot objektets egenskaper (t.ex. Me.Caption = “Hej”). I PHP och WordPress bygger vi oftast upp en samling data (en array) och “skickar in” den i en funktion som sköter ritandet åt oss.
