WordPress zoekfunctie gebruiken voor afbeeldingen

De normale zoekfunctie binnen WordPress  zoekt enkel op tekst.
Voor een klant zou dit ook op afbeeldingen moeten, waarbij de klant bepaalde tekst achter de afbeeldingen opzoekbaar kan maken door de bezoekers.

Na wat rondzoeken op het internet kwam ik op volgende code.

Functions.php
Maak eerst een functie aan binnen uw functions.php bestand.

function ngg_get_search_pictures ($keywords, $numberPicRow = NULL) {

global $wpdb;
$count=1;
if (!$numberPicRow) { $numberPicRow = "4"; }

$nngquery = "
SELECT post_content, post_mime_type, ID, guid
FROM wp_posts
WHERE post_mime_type = 'image/jpeg'
";
$pictures = $wpdb->get_results("SELECT * FROM wp_posts WHERE post_mime_type = 'image/jpeg' AND post_content REGEXP '$keywords'", ARRAY_A);

if ($pictures) foreach ($pictures as $pic) {

$out .= '<a href="'.$pic['guid'].'" >';
$out .= '<img src="'.$pic['guid'].'" alt="'.$pic['post_content'].'" title="'.$pic['post_content'].'" height="80px" />';
$out .= "</a>\n";
if ($count == 0) {
$out .= "<p>&nbsp;</p><br /><br /><br /><br />";
}
++$count;
$count%=$numberPicRow;
}

return $out;

};

Deze bovenstaande functie controleert op informatie die:
- een jpg is:  post_mime_type = ‘image/jpeg’
- een bepaalde trefwoord heeft:  post_content REGEXP ‘$keywords

De trefwoorden van uw afbeeldingen worden ingegevens bij beschrijving, niet de alternatieve tekst. Voor Google redenen die je best ook die alternatieve tekstveld in te vullen, uiteraard. Maar dat mag heus dezelfde tekst zijn.
Search.php
Daarna dien je nog het bestand search.php aan te passen, zodat de afbeeldingen zichtbaar zijn in de zoekresultaten. Naast de post-overzichten uiteraard.


<?php if(is_search()) {
$search = $wp_query->get('s');
$keywords = preg_replace('/\+/',' ',$search);
if (function_exists ('ngg_get_search_pictures')) { // function from functions.php
$nggpictures = ngg_get_search_pictures($keywords, '4'); // put the number of pictures by row you want, if you don't want "4"

if ($nggpictures) {
echo "<h2>Search for pictures</h2>";
echo $nggpictures;
echo "<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>";
}
}
}

?>

Nu verkrijg je een resultatenlijst met eerst de afbeeldingen, daarna de post-resultaten.

Presentatie afbeeldingen
De afbeelding is afgeknot op hoogte: 80px. Het zou leuk zijn om deze via een fancy box te vergroten.
Hiervoor gebruik je de Easy Fancy Box plugin; deze gaat elke mediabestand automatisch ‘uitvergroten’ nadat je erop hebt geklikt.

Bestandsgrootte weergeven in WordPress

Voor een klant heb ik deze User File upload plugin helemaal getweaked.
Deze plugin geeft de WordPress administrator de mogelijkheid om bestanden op te laden en toe te wijzen aan specifieke gebruikers. Die gebruikers kunnen dan de bestanden downloaden in hun backend.

Binnen deze plugin is het niet mogelijk om de bestandgrootte te zien.
Voor de gebruiker is het toch interessant om te weten hoe groot het bestand is dat hij wil downloaden.

PHP functie filesize
Na wat onderzoek botste ik snel op de PHP functie filesize.
Deze functie geeft het aantal bytes van een bepaald bestand weer.

int filesize ( string $filename )

Toch heb ik even gesukkelt om die filesize te laten werken.
Gebruik zeker niet filesize(http://www.uwwebsite.be/bla/bla/bla).
Dat gaat niet werken, want de variabele $filename vraagt naar het pad, en dat ziet er zo ongeveer uit:

/www/c/o/s/site.be/public_html/wp-content/uploads/file_uploads/7/bestand.pdf

Opletten hiervoor.
Met onderstaande code kan je het pad toekennen aan een variabele.

$uploads = wp_upload_dir();
$path = $uploads['basedir'];
$filename = $path . '/file_uploads/'. $userID .'/'. $Thefile;
echo getSize($filename);

Bytes mooi presenteren in KB, MB of GB

De functie filesize geeft het aantal bytes weer.
Dat is niet zo’n mooi presentatie: ’Het bestand is 3015411 bytes groot.’
Beter zou zijn: ‘Het bestand is 30,15MB groot.’.

Vandaar de functie getSize, zie onderstaande code.

Plaats onderstaande code in uw function bestand van uw WordPress-plugin of Theme. In mijn geval plak ik de code in het function-bestand van de plugin User File.

 

function getSize($file){
$bytes = filesize($file);
$s = array('b', 'Kb', 'Mb', 'Gb');
$e = floor(log($bytes)/log(1024));
return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));}

 

Het resultaat

 

Amsterdam ipv Utrecht

Een weekendje Amsterdam achter de rug.
Maar met het WordCamp weekend te Utrecht zat ik misschien in de verkeerde stad…
Als WordPress-fan zag ik de WordCamp helemaal zitten, maar bleek dan dat een gepland weekendje Amsterdam in hetzelfde weekend viel. Bummer, niets aan te doen.

Apple 
Maar ik heb me fel geamuseerd in de hoofdstad.
Blijkbaar lanceerde Apple net dat weekend de iPad3. Dat moet toch de mooiste dag in mijn jonge leven geweest zijn… :-) .
Apple Amsterdam en zijn nieuwe store van 2500m2. Of hoe je 2500m2 kan vullen met eigenlijk maar een twaalf-tal producten. Apple doet het blijkbaar. Als je meer verdient als België als land; of Google en Microsoft samen; dan moet dat kunnen.
Alle Apple-verkopers waren uitgedost met een blauw t-shirt. Ze lijken de slogan te volgen van ‘meer blauw op straat’. Want ongelofelijk hoeveel blauwtjes er rond liepen.
Op vrijdag -het moment dat ik er was- telde ik ongeveer 60-70 verkopers. Hadden ze een stormloop op de iPad3 verwacht ? Wel ik kan stellen, dat het eigenlijk helemaal niet zo druk was; toch niet aan de kassa.

Persoonlijk vind ik Apple fantastische producten hebben. De iPhone, iPad en iMac; mijn lievelingshebbies ! Maar ik heb ook een probleem met Apple. Gigantische winsten maken op kap van de armere chinese arbeiders. Ok, beter een job dan geen job maar ik denk niet dat chinezen daarin een droomjob zien. En dat het leuke werkomstandigheden zijn; naar westerse normen; betwijfel ik. Helaas is dit met vele bedrijven en producten zo, maar wordt het ook verkocht met nadruk op prijs. Maar we kennen allemaal de prijzen van Apple…

Maar Apple lijkt me soms wel een sekte. De ‘Tupperware’-sekte van de elektronica.
Gedicteerd worden van ‘Dit moet zo en dit is de enige echte manier’, bla bla bla.
Enfin, voor mijn job kan ik helaas niet zonder die leuke Apple-speeltjes.
Uiteraard is het een mooie onkost. Maar mijn wenkbrauwen beginnen toch te fronsen als ik menige tieners van twaalf-dertien jaar met een iPhone bezig zie.
Ik kreeg op mijn twaalf een stripboekske…

Ach, misschien had ik beter afgereisd naar WordCamp. :-)
Nee, Amsterdam was super. En nu, back to work !

 

Alternatieven voor istockphoto.com

Een website heeft eenmaal foto’s nodig. En het is maar beter dat je deze op een legale wijze hebt ontvangen. Let altijd op dat je geen gratis foto’s gebruikt waarop copyright zit.
Zo ken ik een waargebeurd verhaal van een notarisbureau uit mijn dorp, waarbij hun webdesigner foto’s heeft gebruikt voor hun website. Deze foto’s bleken gekopiëerd te zijn vanuit Google Afbeeldingen.
Het bekende webbedrijf Getty Images is actief op zoek naar misbruik van foto’s zonder copyright; en ontdekte de foto van dat notarisbureau. Zonder pardon stuurde zij een factuur op van 700 euro… naar die notaris.

Een heus conflict tussen klant en die ene webdesigner. Oeps…

Persoonlijk én voor mijn bedrijf ga ik voor legale foto’s, dit via Istockphoto.com.
Istockphoto.com is een geweldige website om leuke foto’s te vinden, maar de laatste tijd zijn ze echt duur geworden. Voor sommige foto’s is de prijs echt niet te rechtvaardigen.

30 credits voor deze:

Oke, t’is een leuke foto maar 30 credits !? Ik betaal een grote euro per credit: dus 35 euro.
35 euro, kan dat niet ietsje goedkoper.

Sommige WordPress topthemes heb je al voor 35 euro; dat is in principe een ganse website.

Goedkopere alternatieven

Zijn er alternatieven ?
Ik heb enkele leuke gevonden en wil ze graag delen.

http://www.stockvault.net

http://www.dreamstime.com

http://www.jupiterimages.com

http://compfight.com

http://www.everystockphoto.com

http://freerangestock.com

http://www.sxc.hu

 

Bottomline blijft: wees zeker dat de foto’s royalty-free zijn; of dat je ze ergens koopt.
Of uiteraard, trek zelf je foto’s !

 

 

Toots Thielemans als WordPress 3.4

Elke editie van WordPress krijgt de naam van een bekende Jazz-legende. Blijkbaar zijn de coders van WordPress enorme jazz-liefhebbers; en ik ook.

Om direct met de deur in huis te vallen:
ik wil zeer graag Toots Thielemans de eer schenken om zijn naam te binden aan WordPress versie 3.4.

Wel om verschillende redenen:
- Toots wordt dit jaar 90 jaar !
- Toots is een persoonlijkheid, een levende legende.
- Toots speelde met de grootste muzikanten ter wereld.
- Toots heeft een wereldhit gescoord met ‘Bluesette’.
- Toots is in 2001 verheven tot Baron door Koning Albert II.
- Toots is een Belg. :-)  

Meer info over Toots Thielemans:

http://nl.wikipedia.org/wiki/Toots_Thielemans
http://www.tootsthielemans.com/ 

En nu effe genieten van Toots, enjoy deze YouTube-clip !

Wil jij ook Toots vereeuwigen als WordPress 3.4 ?
Twitter het dan verder ! Laat het weten aan de core-developpers; aan de mensen die het finale woord hebben. Doen !!!

WordPress Premium Themes: de volledige collectie

Het gebeurt me zeer vaak dat er ik ergens een fantastische theme tegenkwam; en na 1 dag al vergat waar hij was.
Vandaar dat ik voor mezelf een linkcollectie heb opgemaakt waar leuke WordPress themes te vinden zijn.

http://www.pagelines.com

http://diythemes.com/

http://www.elegantthemes.com

http://www.woothemes.com/themes

http://www.studiopress.com/themes

http://www.solostream.com/wordpress-themes

http://www.wpzoom.com/themes

http://www.vivathemes.com

http://www.obox-design.com

http://www.organicthemes.com

http://themetrust.com

http://www.press75.com

http://themeshift.com

http://bizzthemes.com

http://themify.me/themes

http://themeforest.net/?ref=premiumwp

http://www.appthemes.com

http://templatic.com

http://www.wpmeta.com

http://www.premiumthemes.com

http://www.inkthemes.com

http://flexithemes.com

http://www.kreativethemes.com/themes

http://www.themewarrior.com

http://www.moonthemes.com

 

 

 

 

 

 

 

 

Wat is Flash en kan ik het nog gebruiken op mijn website ?

Flash is in feite een ‘film-formaat’. Het is 1 grote blok van content die afgespeeld wordt door een flashplayer. Een flashplayer is een stukje software welke geïnstalleerd is op u computer.Vanwege het afgesloten blokformaat is in de inhoud van een flash-website niet te lezen door zoekmachines als Google.

Hoe herken ik of een website in Flash is opgemaakt ?
De meeste flashwebsites hebben een laadbar als intro. Een soort van zandloper die weergeeft hoe snel (of hoe traag) de website wordt geladen. Bij twijfel kan u via een simpele rechtermuis-klik het volgende te zien krijgen:

Is Flash slecht ?
Nee. Voor game-websites is Flash nog steeds het beste alternatief.

Heeft mijn website Flash nodig ?
Nee. Geen enkele website voor een doorsnee zelfstandige heeft geen Flash nodig. Niet voor een foto-slideshow of dergelijke.

Wat zijn dan de nadelen van Flash ?
Zoals vermeld, Flash is niet leesbaar door zoekmachines als Google of Bing. Wil u scoren in Google met bepaalde trefwoorden, maak u website dus niet in Flash.
Flash is ook niet leesbaar op een iPad of iPhone. Het bedrijf Apple heeft beslist om Flash niet te ondersteunen omwille van zijn lompe gesloten karakter. Flash kan je zien als een ‘blok’ die eerst ingeladen moet worden. Meestal zijn deze blokken ook volumineus van aantal MB en het een aanslag kan zijn op je telefoonrekening. (bij mobiel gebruik welteverstaand; iPhone of iPad).
Er bestaan wel andere tablets die wel Flash ondersteunen; en deze fabrikanten promoten dit als pluspunt voor hun product. Eerlijk gezged tussen ons; dit is geen pluspunt. Als Apple toch Flash wil ondersteunen, is dit gebeurd in een wip en een flik. En waarschijnlijk veel beter dan hun concurrenten.
Conclusie over Flash:
Flash is voor de 99% van de website niet nodig.
En hoe verder het internet de mobiele kant opgaat; hoe dieper Flash in zijn graf kruipt.

Wat als uw domeinnaam reeds geregisteerd is ?

Dit is een vervolg op m’n vorige post waarin ik het had over het registreren van een eigen domeinnaam. Zeer belangrijk voor uw zaak; ook al gebruik je de domeinnaam niet. Koop hem toch louter als naamsbescherming.

Maar wat als uw domeinnaam reeds bezet is ?

Over dit onderwerk kwam ik volgende interessant artikel tegen op de website van Unizo:

Als de huidige eigenaar de domeinnaam rechtmatig gebruikt, bijvoorbeeld voor de website van zijn gelijknamige of gelijkaardige bedrijf, zit er wellicht niets anders op dan een alternatieve domeinnaam te kiezen, bijvoorbeeld door toevoeging van een woord en/of koppelteken (janssens-consulting.be i.p.v. janssens.be). Werd uw domeinnaam geregistreerd door iemand die er niets mee doet, of door een zogenaamde “cybersquatter”, die doelgericht domeinnamen registreert om ze nadien door te verkopen, dan kan u trachten tot een minnelijke schikking te komen of een juridische procedure aanspannen. Alle info over hoe zo’n procedure loopt, vindt u op www.dns.be/geschillen.
Om gelijkaardige problemen te vermijden, registreert u best vooraf de domeinnamen voor de activiteiten die u in de toekomst wil ontplooien. Controleer of de domeinnaam in kwestie nog vrij is op www.dns.be en registreer hem onmiddellijk, nog voor u hem begint te communiceren. Veel succes!
Advies in samenwerking met DNS, www.dns.be

BRON: www.unizo.be

Registreer uw domeinnaamextensie: BE én NL

Zelfs .com als je kan. Bescherm uw bedrijfsnaam en registreer je domeinnaam; zowel voor een .be als een .nl-adres.
Een domeinnaam kost maar € 10 tot € 30 (afhankelijk van waar je ‘m koopt) per jaar. Dat is inderdaad een minimale investering.

Wat is een domeinnaam extensie ?

De extensie is het laatste deel van een domeinnaam; achter de laatste punt.
Er bestaan land-extensies zoals .be of .nl, maar ook omschrijvende extensies zoals .com (commercial), .org (organisation). Er bestaan geen enkele regels over de keuze van bepaalde extensies. Bv: een organisatie moet niet een .org domeinnaam nemen; de keuze is vrij.

Voordelen voor positie in zoekmachines ?

Dit is voor velen de reden om de domeinnaam extensie van dat land te kopen. Het is geweten dat een .be domeinnaam moeilijker scoort binnen de zoekmachine van Google Nederland. Het kan wel maar met een .nl extensie is dit relatief ‘makkelijker’. Of met een .com, dat kan ook.
Maar helaas is het niet zo simpel. Je scoort heus niet hoger in google.nl als je de nl-domeinnaam koppelt aan je bestaande .be domeinaan / website. Je kan best een volwaardige website aanmaken per land, dus per domeinnaam-extensie. Hou dan ook rekening met het taalgebruik tussen Nederland en Vlaanderen; er zijn duidelijke verschillen in vormen van communicatie en interpretatie.

Indien u niet het budget heeft om 2 websites (NL en BE) aan te maken en te onderhouden, kies dan best voor een .com domeinnaam waarop je een volwaardige website uitbouwt.

 

Conclusie:

Een aankoop van je bedrijfs-domeinnaam .be, .nl en .com is sowieso geen weggesmeten geld. Je beschermt uw bedrijfsnaam/merknaam zodat niemand anders er mee gaat lopen.

Magento installeren: een duidelijke handleiding

Het installeren van Magento zou kinderspel moeten zijn, maar dat is het helaas niet. Sommige stappen in het proces vragen toch een bepaalde expertise. Maar dat wil niet zeggen dat dit onoverkomelijk is. Er zal heus geen nieuwe natuurramp gebeuren mocht je iets ‘verkeerd’ doen. Gewoon doen zou ik zeggen.

Om jou te helpen heb ik een duidelijke handleiding geschreven over de installatie van Magento.
Over welke stappen je moet nemen en welke hindernissen er kunnen voorvallen.

Deze handleiding is geschreven voor Magento versie 1.5.0.1.

1. Download Magento

Nou, dat is makkelijk ! Surf naar magentocommerce.com/download en download de laatste versie van Magento.
Je zal dadelijk merken dat het software-pakket een flink uit de kluiten gewassen brok is van 75MB.

2. Opladen van Magento

Hier begint de pret ! Er dient zo’n 86MB aan bestanden opgeladen te worden naar de server. Reken op een oplaadtijd van 1 uur tot anderhalf uur. Schil ondertussen de patatten !

Alternatieven:
Er bestaan alternatieven om deze zenuwslag te omzeilen: kies dan voor een hosting waarop Magento reeds is geïnstalleerd.
Nadeel: duurder
Voordelen: makkelijk om de shop te installeren, automatische upgrades, service & assistentie van de hoster.

Opgelet:
Hosting is belangrijk, zeker voor een pakket als Magento dat soms wordt omschreven als traag. Maar dat is ook afhankelijk van bepaalde instellingen binnen uw pakket. Maar alleszins: neem een degelijke hosting.
Omdat dit een installatie-handleiding is zal ik het “hosting”-topic later uitvoering bespreken.
Om u al te helpen, bekijk deze pagina inzake de systeemvereisten.

3. Installeren van de sample gegevens

De brave gasten van Magento hebben eveneens data-samples aangemaakt waarin al een paar producten zitten.
Het gaat om 2 pakketten:
- een pakket met foto’s (media map)
- een pakket met database-gegevens. (sql bestand)
De inhoud van de  ‘media”-map laadt je via FTP op naar de desbetreffende en gelijknamige  folder.
Het sql-bestand laadt je op via uw phpMyAdmin-paneel.

Opgelet: in feite is het niet nodig om deze stap uit te voeren ! Je kan perfect onmiddellijk doorgaan met stap 4.
Toch raad ik aan om deze samples in te voeren. Het geeft je eerste leidraad hoe de producten in Magento worden weergegeven, zowel in front-end als in back-end.

4. Permissie aan bestanden en mappen

Bepaalde mappen (en al hun onderliggende mappen) moeten de permissie 777 hebben.
Om welke mappen gaat het ?

  1. lib/
  2. media/
  3. var/

 

5. Installeer Magento

Surf naar het domein waar Magento is opladen en start het installatie-process.

  1. License Agreement
    Vink aan= “I agree to the above terms and conditions”
    Klik op “Continue”.
  2. Localization:
    Kies uw lokale settings:
    Locale = Nederlands
    Time Zone = Central Europe Standard
    Default Currency = euro
    Deze instellingen zijn niet definitief, je kan ze laten nog steeds aanpassen.
    Klik op “Continue”.
  3. Configuration:
    De instellingen van uw database geef je hier in. Een voorbeeld:
    Host =  localhost
    Database Name = naamaccount_naamdatabase   bv. belgento_dbmgt
    Username = naamaccount_gebruikerdatabase  bv. belgento_dave
    User Password = paswoorddatabase  (opgelet: zonder vermelding van uw naamaccount).Web acces options:
    Base Url = http://www.belgento.com  (opgelet: http:// niet vergeten ! )
    Admin Path = het adres naar uw administratorpaneel.
    Default is deze admin, dus http://www.belgento.com/admin. Ik raad aan om dit te wijzigen naar iets creatiefs en iets wat je goed kan onthouden, simpelweg uit extra veiligheidsoverweging.Session Storage Options:
    Bezoekers op uw website starten een “sessie”. Wat betekent dat Magento zowat onthoudt wat die bezoeker uitspookt op uw website: bv welke artikelen plaats hij in z’n mand. De opslag van deze data kan ofwel in de database als in een tekstbestand terecht komen. Mijn keuze gaat uit naar de opslag in de database. 

    Klik op “Continue”.

    Opgelet: Hoogstwaarschijnlijk gaat Magento in deze stap enkele opmerkingen geven over bestanden en mappen die niet writable zijn. Rustig blijven en doen wat ie zegt ! Zet de permissie op ’777? voor de aangegeven mappen en bestanden, en je kan verder.

  4. Create Admin Account:
    Maak een account aan zodat je zelf kan aanloggen op uw eigen Magento shop. Ik moet er niet bij vermelden dat je best niet al te makkelijke paswoorden gebruikt. Dus daarom meld ik het.
    Klik op “Continue”.
  5. Er verschijnt een encrypt code op het scherm. Bewaar deze code in; ze kan later van pas komen bij het activeren van bepaalde betalingsmethodes.

 

Voila, uw Magento shop staat klaar voor gebruik !

NU begint pas het echte werk.
Have fun !