Widget alleen op een specifieke pagina weergeven

Een van de gebreken van WordPress is dat je niet zelf kan bepalen welke widgets je op een pagina wilt laten weergeven.

Over het algemeen is dit geen probleem, maar het kan voorkomen dat je op een bepaalde pagina een unieke widget wilt hebben die op alle andere pagina’s niet hoeft te staan.

Wanneer je weinig van al die ‘vreemde’ codes weet om dit voor elkaar te krijgen zijn er gelukkig nog altijd plugins.

Video uitleg: Widget op specifieke pagina weergeven

Abonneer je op mijn YouTube kanaal

Lees hieronder gerust verder als je meer informatie en de tekstuitleg wilt lezen. Je kunt hieronder ook verschillende conditional tags bekijken die je kunt gebruiken.

Widget Logic

Met de plugin Widget Logic krijg je bij elke widget een extra veld genaamd “Widget logic”. Dit veld geeft je de controle om aan te geven op welke pagina’s de widget moet verschijnen.

Widget Logic invulveld

In het extra veld dat je kunt invullen kun je de “Conditional Tags” van WordPress gebruiken om aan te geven op welke pagina de widget moet verschijnen. Wanneer je niks invult in het Widget Logic veld verschijnt je widget natuurlijk gewoon op alle pagina’s van je website.

De Conditional Tags van WordPress zien er waarschijnlijk nog steeds uit als vreemde code, maar het is niet super moeilijk om te begrijpen. Je kunt bij alle opties de titel of het ID van een bericht of pagina plaatsen.

Voorpagina (Homepage)
is_front_page()

Bericht
is_single( 'Titel bericht') of is_single ( 'Post ID' )
Pagina
is_page ( 'Pagina titel' ) of is_page ( 'Page ID' )

Categorie
is_category ( 'Categorie titel' ) of is_category ( 'Categorie ID' )

Zoals je kunt zien is dit niet heel moeilijk, zolang je maar de titel of ID van de desbetreffende pagina weet.

Indien je een bepaalde widget op meerdere specifieke pagina’s wilt laten weergeven kun je de titels of ID’s scheiden met een komma. Bij ID’s hoeven in dit geval geen aanhalingstekens.

Voorbeeld:
is_single( array( 'Titel bericht', 'Nog een titel' ) ) of is_single( array( 1, 4, 13 ) )

Help, Widget Logic werkt niet (goed)

Het kan voorkomen dat widget logic niet werkt of dat het widgets toont waar het geen widget moet tonen.

De maker van de plugin heeft hier een oplossing voor geïntegreerd in zijn plugin. Onderaan de pagina met widgets staan de Widget logic opties.
Widget Logic opties

Vink de optie “Use ‘wp_reset_query’ fix” aan en je problemen zullen verdwijnen.

28 reacties Voeg ook een reactie toe

  1. Bedankt voor deze uitleg Maikel! Werkt precies zoals beschreven.
    Alleen wil ik heel de overkoepelende sidebar niet weergeven op sommige pagina’s. Deze kan ik echter niet uitzetten via de methode, alleen de widgets in de sidebar. De widgets gaan weg, maar dan blijft er een leeg vlak, de sidebar blijft wel.
    Daar staat ook de optie niet bij. Zou je misschien een idee hebben hoe dat te doen?
    Alvast bedankt, je hebt me al ver geholpen bij de bouw van een wordpress site!

    • Vaak zit er in het thema een pagina-template of een thema optie, waarmee je kunt aangeven of een sidebar wel of niet getoond mag worden. Deze plugin gaat je hier niet bij helpen, daar de opmaak gewoon blijft bestaan.

  2. Wat een handige uitleg!
    Nu vroeg ik me het volgende nog af: op mijn product pagina wil ik de productcategorie in een sidebar tonen. Maar dan niet alle bestaande productcategorieën, maar alleen die categorieën en/of onderliggende categorieën die van toepassing zijn op dat betreffende product.

    Bijvoorbeeld voor een poetsdoek als product heb ik als eigenschap en categorie het volgende ingevoerd: schoonmaak spullen, schoonmaakmiddel en accessoires. Maar bijvoorbeeld niet bij tips, emmers en bezems.

    Als ik nu een sidebar op de productpagina toon met de widget ‘productcategorieën’ krijg ik alle zes te zien, terwijl ik dus alleen de drie eerstgenoemde wil tonen.
    Is hier een oplossing voor?

    • Nee, dit zal niet direct lukken met deze plugin. Er zal dus wat maatwerk aan te passen moeten komen. Een andere optie is om verschillende widgets te maken met de juiste categorieën en deze toe te wijzen aan de verschillende producten.

  3. Bedankt. Je legt het goed een duidelijk uit. Het lukt mij echter niet om een widget alleen op een pagina te laten zien ondanks dat ik alle stappen hebt gevolgd. Enig idee hoe dat kan komen hoe je het kan oplossen? Ik probeer namelijk een visuele bewerker widget aan één specifieke pagina toe te voegen.

  4. Om de widget op pagina’s van een categorie te laten verschijnen werkt de Conditional Tag in_category( ‘5’ ) . Met is_category( ‘5’ ) , verschijnt niet de bedoelde widget op de pagina’s. In plaats daarvan verschenen de default widgets van WordPress, Meta en Archive, die nergens in een widget door mij geplaatst waren.
    Bedankt voor je tips, ze zijn heel nuttig.

    • Bedankt voor de toevoeging. Ik heb op dit moment even geen tijd om alles opnieuw te testen, maar mocht iemand hetzelfde probleem hebben, dan staat hier mooi het juiste antwoord. 🙂

  5. Wow bedankt voor de info, zoveel jaar na dato nog steeds handig!
    Alleen nog een vraag: kunnen widgets ook op een ‘normale pagina’?
    Want ik kan ze alleen slepen naar ‘footer’ of sidebars….
    En ik heb nu een pagina die ‘agenda’ heet waar ik dus graag de agendaplugin wil hebben staan net als de googlemaps plugin en dus niet alleen in de sidebar, juist niet ….

  6. Goedenavond,
    Hoop dat ik ook nu nog een vraag kan stellen over dit onderwerp.

    Ik heb deze widget nu in gebruik en wil op mijn website http://www.marathonvoorbereiding.nl de recente reacties alleen op de pagina “marathon blog” tonen.
    In de widget recente reacties heb ik de volgende tekst in het extra veld ingevoerd: is_page ( ‘Marathon Blog’ ) .
    Maar nu verdwijnt de widget overal. Heb al verschillende zaken geprobeerd maar de widget verschijnt bij mij óf overal óf nergens.
    Zou je me kunnen vertellen wat ik fout doe?

    • Mocht de titel niet werken, dan zal ik het persoonlijk altijd via de post ID doen. Je geeft dan echt de specifieke pagina aan.

      Wellicht is de plugin nu een beetje in de war omdat het de blogpagina is en denkt dat het dan ook bij alle berichten moet komen, maar dat weet ik eerlijk gezegd niet zeker.

  7. Hallo,

    De plugin werkt prima. Maar het lukt wel als een widget op 1 pagina wil laten zien, maar kan je ook aangeven dat je het op bijvoorbeeld 2 of 3 pagina’s wil laten weergeven?
    Zoja, hoe?

    Alvast bedankt.

  8. Beste Maikel,

    Ik heb de plugin Widget Logic geïnstalleerd om de inschrijving voor een nieuwsbrief naar een pagina of bericht te verplaatsen. Dat heb ik ook gedaan, inclusief de extra optie linksonder. Maar ik krijg de widget alsnog niet te zien in het bericht of pagina. De widget is wel van de homepage verdwenen, maar nu niet meer te zien.

    Kun jij mij vertellen wat ik moet doen om dit alsnog voor elkaar te krijgen?

    • Het lijkt dan toch gedeeltelijk te werken. Heb je zowel de titel als ID geprobeerd om het werkend te krijgen?

      Het kan ook zijn dat de aanhalingstekens niet goed waren indien je de code hebt gekopieert. Door de opmaak werden ze in het bericht iets anders weergegeven. Dit heb ik nu aangepast.

  9. Ik heb een favicon gemaakt en heb die in de root gezet, maar ik zie nog steeds het logo van internet explorer. Moer er ergens nog iets opgegeven worden?

  10. Bedankt voor het advies.
    In principe lukt het is_front_page() invoeren, MAAR
    Voorheen had ik berichten met daaronder 4 widgets met tekst en afbeeldingen en dat was dan bij iedere pagina zo.
    Nu heb ik dan nergens widgets meer staan, als voor beeld is er 1 terug.
    Ik heb ingesteld een statische berichten voorpagina.
    Hoe ik dit ook kies of de widgets zijn er overal of nergens of alleen.
    Wat hieraan te doen

      • Die plugin heb ik geinstalleerd en gekeken, maar het onderdeel tabbet widget is bij mij niet te zien, dus kan ik ook geen pagina selecteren volgens mij en kan ook maar 1 widget op de voorpagina krijgen en de anderen dus niet.
        Dus mijn oplossing is er nog niet helemaal, als je nog een advies hebt graag

        • Het gaat om het onderdeel “Widget Context” wat je op deze afbeelding kunt zien: http://s.wordpress.org/extend/plugins/widget-context/screenshot-1.png?r=607981 wanneer je de plugin activeert hoor je dit onder je widgets te zien.

          Je kunt dan per widget aangeven op welke pagina’s je de widget wilt laten tonen of op welke pagina’s het niet getoond mag worden.

          Ik heb het net even getest en bij mij werkt het wel gewoon. Wanneer je een Widget alleen op de homepage wilt hebben kun je dit aanvinken, moet het op heel je website zichtbaar zijn dan hoef je niets te doen en wanneer je widgets wilt tonen maar op een bepaalde pagina niet dan kun je dit ook doen door hide on selected te selecteren.

          Ik weet verder niet hoe ik het kan uitleggen omdat ik niet kan zien wat er mis gaat.

          Lukt het toevallig wel als je het standaard thema gebruikt? Dan ligt het namelijk aan het thema dat je gebruikt.

            • Bedankt Maikel, ik was juist op zoek naar hoe ik een widget op alleen de homepage kon verwijderen. De plugin Widget Context is super makkelijk!

  11. Bedankt voor de goede tips, ik heb deze widget in gebruik genomen, maar weet niet precies wat ik moet invullen als de tekst-widget alleen op de homepage moet komen.

    En los van dit, kan ik nergens de oplossing vinden voor:
    Een onderdeel in het menu, heeft een link naar een pdf document, ik kan nergens vinden hoe aangegeven moet worden als dit document als nieuwe pagina geopend moet worden

    groet van Gerrit

Geef een reactie