Development Plugins

Deze post wordt regelmatig geupdate.

Naast dVault.nl gebruik ik ook een lokale WAMP-installatie om zaken te testen en te ontwikkelen. De volgende plugins ondersteunen de ontwikkelen van een plugin of template heel goed door de extra informatie of mogelijkheden die ze geven:

  • Debug Bar integreert heel goed in de standaard Admin-bar en dat geeft de plugin een voorsprong. Daarnaast is deze ook modulair uitbreidbaar. Ook met een aantal performance tracers;
  • WP-devel geeft dezelfde informatie ook, maar direct in de footer van de pagina. De lay-out vind ik iets overzichtelijker, maar anderzijds intergreert het soms niet zo goed met een template of theme.
  • MySQL Profiler - geeft een helder inzicht in de SQL-queries per pagina gekoppeld aan de functies die de query aanroepen. Debug Queries geeft een soortgelijk overzicht;
  • De betere versie Debug Objects is van dezelfde auteur. Debug Objects geeft een geweldig inzicht in alle functies en queries in gebruik op een bepaalde pagina. Voor mij op dit moment de winnaar waar het gaat om inzicht in de Queries en Objecten in een pagina;

    DebugObjects plugin

    DebugObjects plugin settings page

  • Rewrite Rules Inspector en Monkeyman Rewrite Analyzer geven beide een overzicht van de effectieve Rewrite Rules;
  • De deprecation checker is handig om themes en templates te testen op deprecated code;
  • P3 – Plugin Performance Profiler trekt het analyse-niveau naar een hoger plan. Het geeft een gedetailleerd inzicht in de laadtijd van de verschillende pagina’s en de impact van de verschillende plugins hierop. Een geweldige tool!

    P3profiler screenshot

    P3profiler screenshot

Meer algemenere tools zijn:
  • CodeStyling Localization laat je alle PO/MO-files bewerken binnen de WordPress-admin;
  • Simply Show IDs geeft bij elk object in de backend het ID. Handig om de juiste queries te bouwen;
  • User Switching geeft de mogelijkheid om even in een ander account mee te kijken;

Daarnaast zijn er een aantal tools welke ik in het verleden gebruikt heb, omdat de situatie er om vroeg:

  • Adminer - PHPmyAdmin in WordPress, handig als de webhost geen PHPmyAdmin heeft;
  • Soms heb je phpinfo() nodig – voor de luie ontwikkelaars onder ons: WordPress phpinfo();

htaccess, PHP en Apache

Elke beheerder van een WordPress-installatie is ze wel tegengekomen: een upload die niet wil, omdat het bestand te groot is of de uploadsnelheid te laag. Door de volgende regels in een .htaccess-bestand te plaatsen is de configuratie van PHP aan te passen, mits de provider dit toelaat.

php_value upload_max_filesize 20M
de maximale grootte van bestanden die geupload worden
php_value post_max_size 20M
de maximale grootte van de POST-data
php_value max_execution_time 200
de maximale tijd dat een script/pagina mag draaien (in seconden)
php_value max_input_time 200
de maximale tijd dat een script/pagina input mag uitvangen, bijvoorbeeld uit een browser (in seconden)

Ook loopt WordPress wel eens vast (white screen of death) door een tekort aan geheugen. Dit kan opgelost door de volgende toevoeging in .htaccess

php_value memory_limit 128M

In de Codex staat het volgende over de mogelijkheden via wp-config.php:

define('WP_MEMORY_LIMIT', '64M');

Of gebruik een plugin, namelijk Memory Bump die een bump tot 256M geeft, bijvoorbeeld een aantal plugins te installeren of een upgrade uit te voeren. Dat zou voldoende moeten zijn voor bijna alle installaties.

 

Grote schoonmaak – samenvatting van 3 jaar devblogs

De grote schoonmaak begint vorm te krijgen en dat betekent dat ik nu bij handige links, tips en howtos op mijn oude blogs aankom. Net zoals de dagen hiervoor zal ik de actuele data overzetten. Hieronder een aantal plugins die ik veelvuldig gebruik.

Add from Server is een simpele plugin waarmee reeds aanwezige files in de database van de database ingelezen kunnen worden. Simpel en effectief. CSS Cache Buster zorgt ervoor dat de bezoeker altijd de recentste versie van je CSS file voor zich heeft. Revision control had naar mijn mening standaardfunctionaliteit moeten zijn.

Validated geeft de administrator een handige interface om alle pagina’s te checken op validatieproblemen bij W3C. Helaas wordt deze plugin niet meer onderhouden, maar er zijn genoeg alternatieven.

Redirection zorgt er voor dat de bezoeker altijd een zinvolle pagina voorgeschoteld krijgt. Handig tijdens migraties.

Mute Screamer – PHPIDS4wordpress

Mute Screamer uses PHPIDS to detect attacks on your WordPress site and react in a way that you choose. PHPIDS (PHP-Intrusion Detection System) is a simple to use, well structured, fast and state-of-the-art security layer for your PHP based web application. The IDS neither strips, sanitizes nor filters any malicious input, it simply recognizes when an attacker tries to break your site and reacts in exactly the way you want it to. Based on a set of approved and heavily tested filter rules any attack is given a numerical impact rating which makes it easy to decide what kind of action should follow the hacking attempt. This could range from simple logging to sending out an emergency mail to the development team, displaying a warning message for the attacker or even ending the user’s session.

WordPress › Mute Screamer « WordPress Plugins.

Custom Post Types deel 2

Na enige tijd van drukte heb ik eindelijk weer eens tijd om verder te gaan met de ontwikkeling van DDJ en ik ben begonnen met testen van Custom Post Types. Eerder ben ik hierover redelijk voorzichtig geweest, omdat de locatie van de definities van het Type in functions.php in het template mijns inziens niet juist is. Custom Post Types zijn mijns inziens niet template afhankelijk en daarom horen deze definities daar niet thuis. Nu 1,5 maand na de release van WP 3.0. zie je toch dat dit vernieuwende onderdeel wel goed wordt opgepakt; en dus doen wij dat ook. Otto beschrijft nog eens waarom Custom Types geen Posts of Pages zijn.

Allereerst, het is niet nodig om handmatig functions.php te wijzigen. Middels de plugin Custom Post Type UI makkelijk te doen. Waarschijnlijk is het in het geval van een duidelijke structuur wel raadzamer om dit uiteindelijk in functions.php onder te brengen, want dit scheelt weer een plugin, maar voor testdoeleinden is dit ideaal. Met een paar klikken staat een Custom Post Type klaar en is het menu-item aangemaakt. Zie hieronder voor een videotutorial.

Middels de plugin Query Multiple Taxanomies van Scribu. Is het heel makkelijk om via Widgets complexe queries te doen op de Post-verzameling. Dit is niet per definitie voor Custom Post Types; het kan ook gebruikt worden op de normale posts. Somadesign lost het gemis van een landing page voor een custom post type op.

Er zijn verschillende plugins om ook op een simpele manier Custom Fields toe te voegen aan je Custom Post Type. Magic Fields (WP.org repository) heeft de meeste Field-types. Denk bijvoorbeeld aan Sliders en Audio. De ondersteuning van WP3.0 is nog geheel vlekkeloos. Custom Fields Template lijkt uitgebreide mod-mogelijkheden te hebben, maar dat schrok mij af (en het japans ook).  Uiteindelijk heb ik gekozen voor Simple Fields. Simpel en helder. Wel een jonge plugin, dus mogelijk nog wel bugs, maar het ziet er simpel uit en doet wat het moet doen: op een overzichtelijke manier Custom Fields weergeven, zodat ook mijn klanten het snappen en geen handleiding nodig hebben om te posten. Hoe je velden kan verwijderen uit de admin staat beschreven op deze pagina van Shibashake.

Nu alleen nog de Custom Fields in de pagina’s verwerken. Hoe dit moet staat beschreven door GenuineInteractive. Wel even rekening houden met het aanpassen van de Query voor de Tags.

Stand van zaken; Oorlul en Geolocatie

Voor oorlul.nl begin ik inmiddels ook duidelijk te hebben hoe ik deze site ga opzetten. Plaatjes en filmpjes welke een glimlach op mijn gezicht kunnen toveren, en hopelijk ook van de bezoekers. Van dit soort sites zijn duizenden, succesvolle voorbeelden op het internet, maar veelal is de navigatie gewoon slecht en scheeftrekkende schouders bevorderend. Oorlul wordt een compacte site met een vaste grootte en 1 post per view. Voorwaarde  is dat de navigatie ook met het toetsenbord kan plaatsvinden. Ik ga niet zitten hopen en wachten op gebruikersinteractie, hooguit een ratingsysteem. Comments zullen niet prominent aanwezig zijn. Ook ik heb namelijk ook nog nooit 1 comment op een dergelijke site geplaatst. Het moet voelen als televisie kijken.

Om dit te bewerkstelligen zit ik te denken aan een opzet a la WP coda waar de content horizontaal scrollt. Bij WP-coda betreft het pagina’s, dus dat valt even tegen, anders had het snel kunnen gaan, maar er zullen vast wel voorbeelden van templates zijn die ook posts horizontaal scrollen. En misschien moet ik hier toch ook weer gaan denken aan custom post  types…

Inmiddels heb ik wel een aanvulling op de custom posts gevonden, namelijk de Simple Fields plugin, waarmee verschillende type invoervelden gemaakt kunnen worden. Kortom, geen uitgebreide handleidingen met syntax-instructies voor de verschillende custom fields, maar gewoon begrijpelijke maatwerkvelden.

Voor Bauke’s site heb ik inmiddels ook een aantal tests gedaan naar aanleiding van mijn initiele zoektocht naar Geo-based plugins GeoMashup is uitgebreid en goed, maar werkt niet met de iPhone App. Geolocation wel, maar is pretty basic. Tezamen zou het prima werken, maar dat levert ook problemen op: de GoogleMap laden niet 2 keer en daarbij sloopt de combinatie van deze plugins ook de andere jQuery in de backend (bijvoorbeeld het AddMedia popup en de AddCategory-button.

Uitdagende hobbels om te nemen de aankomende tijd.

Custom post types – Hoe, wat en waar?

Zondagmiddag, kinderen op bed… Even tijd voor een leuk stuk vertier, namelijk de updates van de verschillende (nieuwe) plugins bekijken op de WordPress.org plugin repository. Direct al raak, Template Override lijkt een prima functionaliteit voor de toekomst, gezien de automatische template-updates vanaf WP3.0. Later eens een keer goed testen, dus waar sla ik de link op… Misschien in een Blogroll, of pak ik daar een plugin voor, of gewoon een post. Nee wacht, in WP3.0 zit standaard ondersteuning voor Custom Post types. Precies wat ik zoek, ik maak gewoon een type post: “plugins om te testen”, met een aantal velden .als URL, categorie, opmerking.  Dan kan ik daarna relatief makkelijk een lijstje maken. Hoe werkt het dan precies. Een korte scan door het menu levert niets op dus gaan we naar Google en komen we op de site van Kovshenin. Wat blijkt, voor Custom Post types moeten er aanpassingen gemaakt worden in functions.php in het theme. Hmmm, niets geen makkelijke GUI zoals bij een aantal plugins (Pods, Flutter) en een structureler probleem is dat functions.php is een onderdeel van het template/theme van de site. Kortom, bij wisseling van een theme, zonder het copy/pasten van de inhoud van functions.php gaat de gehele structuur verloren. Net als anderen denk ik dat hier niet goed over nagedacht is. Post types zijn onderdeel van de core en niet van het template naar mijn mening. Kortom, nog even geen makkelijk lijstje met plugins die getest moeten worden. Voor degene die toch aan de slag willen heeft Justin Tadlock een uitgebreide uitleg over de mogelijkheden van Custom Post types in WP3.o en nog een stap verder de taxanomie van de data