Een wordpress menu hack

TwitterFacebookTumblr

Als ik een website maak op basis van WordPress probeer ik zoveel mogelijk binnen de grenzen van het platform te blijven. Soms kan dat niet en is het nodig dat ik mijn toevlucht zoek tot een hack.

Menu-editor
De ingebouwde menu-editor van WordPress 3.0 is een grote vooruitgang ten opzichte van eerdere versies. Toen zat er namelijk geen menubuilder in de WP core en was je altijd aangewezen op plugins of wazige zelf geknutselde oplossingen. Toch heeft de menu-editor van WordPress 3.0 een paar flinke tekortkomingen. Zo zijn de ID’s die aan de menu-items worden toegekend nogal onhandig. WordPress gebruikt hiervoor het database-id van het menu-item. Aaargh!

Mijn koninkrijk voor een logisch ID
Mijn koninkrijk voor een logisch ID! Met een hack van één van de bestanden in de include directory is het wel mogelijk om de items in het WordPress menu een wat logischer ID te geven. In regel 79 van nav-menu-template.php wordt het ID aan het menu-item gekoppeld. Door

$id = apply_filters( ‘nav_menu_item_id’, ‘menu-item-’. $item->ID, $item, $args );

te vervangen door iets als

$menu_item_met_een_logisch_id = strtolower(str_replace(” “,”-”,$item->attr_title));
$id = apply_filters( ‘nav_menu_item_id’, ‘mnu-’. $menu_item_met_een_logisch_id, $item, $args );

Hierin gebruik ik het title attribuut van het menu in het ID, in plaats van een lullige nummering. Dit attribuut kun je zelf toekennen in de menu-editor.

Controle over de styling
Da’s vervolgens toch wat lekkerder declareren in je stijlblad. Bijvoorbeeld:

#mnu-nieuws.current-menu-item { doe: iets; }

De combinatie van een stijlbladdeclaratie op basis van ID én class zorgt ervoor dat je volledige controle hebt over de look and feel van het actieve menu-item.

Lelijk maar acceptabel
Ugly hack? Absoluut. De core files van WordPress moet je eigenlijk met rust laten, want je loopt het risico dat jouw wijzigingen worden overschreven bij een versie-upgrade. Als tijdelijke maatregel, in de hoop dat het in de toekomst beter geregeld wordt? Acceptabel.

Gerelateerde link
WordPress codex over wp_nav_menu

  ·

Weekend leeslijst

TwitterFacebookTumblr

Heb je de zaterdageditie van de krant uit? Loop je met je ziel onder je arm. Hier is wat leesvoer om het weekeinde door te komen. Op het leeslijstje van het weekeinde van 13 | 14 februari:

Make your mockup in markup

Meagan Fisher pleit ervoor om mockup ontwerpen in markup te maken, in plaats van een grafisch programma. Want

The idea of rewarding users who choose modern browsers is not a new concept; Dan covers it thoroughly in Handcrafted CSS, and it’s been written about in the past by Aaron Gustafson and Andy Clarke on several occasions. I believe we shouldn’t have to design for the lowest common denominator (cough, IE6 users, cough); instead we should create designs that are beautiful in modern browsers, but still degrade nicely for the other guy. However, some clients just aren’t that progressive, and in that case you can always use background images for drop shadows and rounded corners, as you have in the past.

Progressive enhancement, dat snijdt hout. Maar toch is dit nou net het punt waarop ik denk dat het meestal spaak loopt. Ik ben bang dat een klant vrijwel altijd de “mooie versie” van de website wil zien. Dus ben je alsnog veroordeeld om je state-of-the-art ontwerp te verarmen met allerlei kunstgrepen.

iPhone Apps Need Low Starting Hurdles

Most mobile applications are used only intermittently, so they must be especially easy during initial use. In particular, upfront registration shouldn’t be required before users experience an app’s benefits.

Een verhaal over webobstakels van usability goeroe Jakob Nielsen. Stuff die we allemaal — allang horen te — weten. Maar nooit genoeg ingeprent kunnen krijgen.

WordPress podcast

Joost and Frederick discuss the WordPress Advanced Ticket System, plus how WordPress and WordPress MU have merged and multi-site functionality will be included in the upcoming WordPress 3.0.

Een tikkeltje nerdy, maar toch een interessante discussie over WordPress op Webmaster Radio. Zelf ben ik vooral erg benieuwd naar het in elkaar schuiven van de codebase van WordPress en WordPress MU (MultiUser).

The customer CAN handle the truth

I saw an example of this one day when I visited a house for sale that was advertised as: “Fantastic and rare opportunity to acquire this beautiful 7 bedroom detached home. This property has got it all!” As the sales agent quietly said to me, “The only thing you could do with this house is knock it down and start again.”

Altijd met humor geschreven, de stukjes van Gerry McGovern. Maar behalve dat ze licht komisch van toon zijn, valt er veel wijsheid uit te halen.

  · · · · · ·

2009. Het onvermijdelijke lijstje

TwitterFacebookTumblr

Laatste dag van het jaar. De hoogste tijd voor het onvermijdelijke lijstje …

Veel plezier beleefd aan

  • WordPress CMS
  • jQuery javascript framework
  • Mac OS X

Ernstig teleurgesteld in

  • Microsoft Office Sharepoint Server
  • mijn Google Adsense inkomsten

Aangenaam verrast door

  • Pods WordPress plugin
  • Windows 7

Vlekken in m’n nek van

  • sociale netwerken in het algemeen en Hyves in het bijzonder
  • slap ICT geklets over Enterprise Service Bussen, Service Oriented Architecture en OTAP straten

Uitdagingen voor 2010

  • schonere code schrijven
  • websites bouwen op basis van een fluid grid
  • meer creatief bezig zijn, minder techno-nerdish
  · · · ·

Enigszins op weg

TwitterFacebookTumblr

Opschonen. Verwijderen. Schuiven met bestanden. Betere structurering van m’n data bouwen. Stoeien met het herschrijven van urls. Nieuwe plugins instellen. Oude plugins naar de eeuwige jachtvelden sturen. Php-code schrijven. En stukjes html. Stijlbladen snoeien. Nieuwe layout zien goed te krijgen.

Na een weekend stoeien ben ik NOG LANG NIET KLAAR. Zowel inhoudelijk, functioneel als opmaaktechnisch mankeert er nog van alles aan, maar het begin is er.

  · · · ·

Pods. Een waardevolle plugin voor WordPress

TwitterFacebookTumblr

logo Pods
Ik ben een tevreden gebruiker van WordPress. Als het aan mij ligt, gebruik ik WP voor iedere website die ik moet bouwen. De flexibiliteit van de code en de ruime keuze aan plugins zijn hierbij belangrijke pluspunten. Bovendien kan ik met WordPress intussen vlotjes een website van een redelijke technische kwaliteit online krijgen.

verder lezen »

  ·