WordPress sortering aanpassen voor een specifieke categorie

WordPress sortering aanpassen voor een specifieke categorie

WordPress sortering aanpassen voor een specifieke categorie

Heb je ook wel eens dat je, terwijl je een website aan het ontwikkelen bent, dat je de volgorde van je posts anders wil zien voor een specifieke categorie? Ik kan me voorstellen dat je de blogberichten op basis van datum in een aflopende volgorde wil tonen, maar wat bijvoorbeeld bij een portfolio categorie? Misschien is het dan wel handiger om het op alfabetische volgorde te sorteren. Met onderstaand stukje code snippet is het heel eenvoudig om voor 1 of meerdere specifieke categorieën de sortering aan te passen:

Je opent hiervoor archive.php in je template map te vinden in /wp-content/themes/ en voegt het volgende stukje code toe, voor ‘the_loop’, wat vaak expliciet wordt aangegeven in het bestand:

if (is_category('244')) { $posts = query_posts($query_string. '&orderby=title&order=asc' ); }

Waarbij je in bovenstaand stukje code het nummer 244 vervangt door het nummer van je eigen categorie. Dit nummer vind je door in wp-admin te gaan naar de categorieen en met je muis erop te gaan staan. Onderin het scherm zie je dan het volgende:

http://www.snapcat.nl/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=244&post_type=post

Waarbij het stukje tag_ID=244 het nummer toont dat je moet invullen.

Behalve op titel in oplopende volgorde, kan je op deze manier alle mogelijke sorteringen per categorie aangeven.

WordPress Move plugin – lokaal WordPress ontwikkelen.

WordPress Move plugin – lokaal WordPress ontwikkelen.

WordPress Move plugin – lokaal WordPress ontwikkelen.

De WordPress plugin “WordPress Move” ontwikkeld door Mert Yazicioglu is de beste plugin die we hebben kunnen vinden om degelijk een WordPress website lokaal te kunnen ontwikkelen. In deze post leg ik uit hoe.

Download de plugin via je WordPress administratiepaneel

De plugin is te vinden via de WordPress Plugin directory die te vinden is vanuit je eigen WordPress installatie door te zoeken op “WordPress Move”. Op het moment van schrijven is versie 1.3.1 de meest recente versie, maar het is al bekend dat er een nieuwe versie onderweg is. (zie verderop). Het is de bedoeling dat je de plugin zowel installeert in je lokale, als in je remote, WordPress installatie.

Hoe het werkt (bij de bron, lokale WordPress)

Nadat je je WordPress website hebt ontwikkeld op je lokale machine gebruik je de ‘Migration Assistent’ die nu beschikbaar is in je WordPress administratiepaneel onder het kopje ‘Extra’ en klikt de middelste optie ‘Migrate’.  Hier vul je de gegevens van je FTP-server in (van de remote WordPress, degene die nu dus online staat) en vul je het pad in naar de back-up map van de plugin op de FTP server, vanaf de plek waarop je terechtkomt na het inloggen. ( bijvoorbeeld: /httpdocs/wp-content/plugins/wordpress-move/backup/). Na het klikken op de button onderaan wordt je gevraagd het FTP wachtwoord in te vullen. Dit wachtwoord wordt niet opgeslagen, dus moet je elke keer invullen. Grote voordelen voor de veiligheid, klein nadeel dat je het telkens opnieuw moet invoeren. Selecteer daarna de bestanden die je wil migreren (de hele website of alleen bijvoorbeeld je template) en klik op ‘Migrate’.

Onder de motorkap

Onder de motorkap doet de plugin nu een export maken van je database en zipt alle bestanden die je geselecteerd hebt. Daarnaast upload de plugin deze bestanden naar de FTP die je zojuist hebt opgegeven. Simpel maar effectief en snel!

Hoe het werkt (bij het doel, de online WordPress)

Op de online WordPress versie, klik je daarna ook op de ‘Migration Assistent’ en klikt op ‘Restore’. Hier selecteer je de backups die je zojuist hebt gemaakt. Momenteel is het zaak goed op de datum en tijd te letten. Er is een wijziging onderweg vanuit de ontwikkelaar die standaard de nieuwste bovenaan zet. Let er op dat je zowel het .zip bestand als het .sql bestand aanvinkt. Klik daarna op ‘Complete Migration’. De plugin pakt nu de zipbestanden uit en voert het SQL bestand uit op de database. Als dat klaar is zie je een bevestiging en is je website online gelijk aan de website die je lokaal gemaakt hebt!

Verbetersuggesties!

Tijdens het implementeren van deze plugin en het testen zijn er een aantal (2) bevindingen gedaan en reeds verstuurd naar de ontwikkelaar. Hij gaat deze bevindingen oplossen in de volgende versie. Wil je echter meteen aan de slag, dan vertellen we je hieronder wat we in de plugin hebben aangepast en kan je de bijgewerkte plugin downloaden.

Bestand: wordpress-move/libs/functions-file-backup.php op regel 35 moet de complete regel worden vervangen met:

return $archive->extract( PCLZIP_OPT_PATH, $destination, PCLZIP_OPT_REPLACE_NEWER );

Door het toevoegen van PCLZIP_OPT_REPLACE_NEWER wordt het mogelijk om bestanden die reeds aanwezig zijn te overschrijven, waarbij er wordt gekeken naar de datum en tijd. Als het bestand dat al op de server staat ouder is dan het bestand dat we willen plaatsen wordt het bestaande bestand overschreven. Met de huidige versie (1.3.1) is dit niet mogelijk. We verwachten dat dit in versie 1.3.2 is opgelost.

Wordpress Move plugin   lokaal Wordpress ontwikkelen.

plugin download logo

Deze oplossing en wijziging is mogelijk gemaakt door @BruceJillis
Check out his twitter! https://twitter.com/brucejillis

WordPress “Page Links To plugin” voorlopig afgeschreven

WordPress “Page Links To plugin” voorlopig afgeschreven

WordPress “Page Links To plugin” voorlopig afgeschreven

Snapcat.nl gaat voorlopig de plugin “Page Links To” niet meer gebruiken. De plugin maakt het mogelijk om berichten en pagina’s te gebruiken om door te sturen naar (externe) content / pagina’s. De plugin is hier te vinden: WordPress Plugin directory

Wat gaat er fout?

Als je een pagina op deze manier doorlinkt, dan wordt deze link opgenomen in je sitemap.xml. Google gebruikt de sitemap.xml om je website te indexeren, echter loopt Google stuk als er een ‘vreemde’ link in staat en dus loopt je indexatie gevaar en uiteindelijk je pagerank gevaar!

Mooi zoek web-adres in WordPress

Mooi zoek web-adres in WordPress

Ondanks dat WordPress erg goed is in het maken van zoekmachine vriendelijke (SEO) adressen, ook wel URL’s genoemd, is het bij het gebruik van een zoekbox in je template niet een vanzelfsprekendheid. Om toch te zorgen dat je adresbalk gevuld wordt met een mooi zoek web-adres in WordPress, bespreek ik hieronder een mogelijkheid om toch een fatsoenlijke zoekfunctie te gebruiken.

Heb je al een zoekfunctionaliteit in je website zitten? Sla het eerst gedeelte over door meteen door te klikken om door te gaan met het optimaliseren van de zoekresultaten URL.

Eerst moeten we daarvoor een zoek formulier maken. Dat gaat heel makkelijk, door een kladblok te openen en de volgende code er in te plakken:


<form method="get" id="searchform" action="<?php bloginfo("home"); ?>"/>
<div><input type="text" size="18″ value="Uw zoektekst" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Zoek" class="btn" />
</div>
</form>

en het bestand vervolgens op te slaan als ‘searchform.php’ en te uploaden naar je template map op de FTP-server. Waarschijnlijk de map met de naam van je template in de map ‘/httpdocs/wp-content/themes’. De bovenstaande code zorgt voor een invulveld en een knop met de tekst ‘Zoek’. Daarna moeten we de zoebbox gaan toevoegen aan de daadwerkelijke website. Het meest handig is het om dit in het bestand ‘header.php’ te doen. Je doet dit door het volgende stukje code toe te voegen aan het bestand:

<div id="search">
<?php include (TEMPLATEPATH . "/searchform.php"); ?>
</div>

Eventueel kan je een en ander een beetje meer styleren, door middel van wat CSS code:


#search { float: right !important;margin-left: 6px !important;margin-right: 104px;margin-top: -130px;padding: 0 2px !important;padding-bottom: 107px!important; }
#searchsubmit { padding: 5px; }
input[type="text"], textarea { width:100px; }


Nu kunnen we dus zoeken op de website, maar krijgen we een niet zo net adres in de adresbalk te zien. Namelijk iets als “http://www.snapcat.nl/?s=testen”. Om dit op te lossen bestaat er een mooie plugin gemaakt door Mark Jaquith. Deze plugin zorgt er voor dat je een heel mooi, zoekmachine vriendelijk adres krijgt voor je zoekresultaten: “http://www.snapcat.nl/search/testen”. De plugin is te downloaden via de website van Mark Jaquith op txfx.net. Credits voor de plugin zijn uiteraard voor de ontwikkelaar Mark Jaquith.

Mooi zoek web adres in Wordpress

Log daarna in op de WordPress administratie console via /wp-admin/ en ga naar ‘Nieuwe plugin’, kies ‘uploaden’, kies het zip-bestand, klik op ‘Uploaden’ en Activeer de plugin. Klaar!

Toon een complete Flickr photoset in je WordPress bericht met de TanTan Flickr plugin

Toon een complete Flickr photoset in je WordPress bericht met de TanTan Flickr plugin

Toon een complete Flickr photoset in je WordPress bericht met de TanTan Flickr plugin. Hoe? Joe Tan heeft een plugin voor WordPress geschreven om je Flickr photoset te tonen. Deze plugin is noodzakelijk voor onderstaande handleiding en kan worden gedownload vanaf zijn website. De credits voor de plugin gaan uiteraard naar Joe Tan.

Toon een complete Flickr photoset in je Wordpress bericht met de TanTan Flickr plugin

Nadat je de plugin geinstalleerd hebt in je WordPress administratie paneel, kunnen we aan de slag. Met deze handleiding maken we het mogelijk om in een blog bericht op WordPress alle foto’s uit een Flickr ‘Photoset’ op te halen en in een blogpost te zetten. Het mag duidelijk zijn dat het handig is om vooraf je website goed te back-uppen.

De Flickr API staat het toe om maximaal 30 foto’s aan te bieden, dit kan echter mettertijd wijzigen. Mocht je maar 30 foto’s in een bericht kunnen plaatsen, dan ligt dat aan de API.

Je kan de gewijzigde bestanden ook downloaden via de onderstaande button, waarna ze kunnen worden geplaatst op de correcte plek. Zie hieronder voor het bestandspad.

Toon een complete Flickr photoset in je Wordpress bericht met de TanTan Flickr plugin

Mocht je zelf al aanpassingen hebben gedaan aan de plugin dan stel ik voor dat je de wijzigingen handmatig uitvoert. Hieronder daarom ook de uitleg. Hier heb je ongeveer 10-20 minuten voor nodig, afhankelijk van je programmeer ervaring.

In totaal moeten we 4 bestanden aanpassen en kunnen we optioneel de CSS nog aanpassen.

httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-resources.php
httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-shortcode.html
httpdocs/wp-content/plugins/tantan-flickr/flickr.php
httpdocs/wp-content/plugins/tantan-flickr/flickr/class-public.php

en optioneel:
httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-styles.css

In het bestand httpdocs/wp-content/plugins/tantan-flickr/flickr/class-public.php doe je het onderstaande aanpassen:

Rond regel 191 vervang je de volgende code:

$key = "flickr-$album-$tag-$num-$size-$video-$photo";

met onderstaande stukje code:

$albumID = $album;
$key = "flickr-$albumID-$tag-$num-$size-$video-$photo";
if ($html = get_post_meta($post->ID, $key, true)) {
return $html;
} else {

Zoek het onderstaande stukje code rond regel 197 tot 203:

}
// grab the flickr photos
$photos = array();

$auth_token = get_option("silas_flickr_token");
$baseurl = get_option("silas_flickr_baseurl");
$baseurl_pre = get_option("silas_flickr_baseurl_pre");
$linkoptions = get_option("silas_flickr_linkoptions");

Direct daarachter plaats je de volgende code:

$album = array();
$photos = array();
if ($auth_token) {
require_once(dirname(__FILE__)."/lib.flickr.php");

Daarna zoek je de onderstaande code rond regel 222 tot 225:

} elseif ($album) {
$albumData = $flickr->getAlbum($album);
$photos = $flickr->getPhotos($album);

en vervangt dit met onderstaande code:

} elseif ($albumID) {
$album = $flickr->getAlbum($albumID);
$photos = $flickr->getPhotos($albumID);
} elseif ($tag) {
$photos = $flickr->getPhotosByTags($tag);
}

Daarna zoek je de volgende code ergens rond regel 241:

foreach (array_slice($photos, 0, $num) as $photo) {
$html .= TanTanFlickrDisplay::photo($photo, array(
"size" => $size,
"album" => $albumData,
"scale" => $scale,
"prefix" => $prefix,
"linkoptions" => $linkoptions
));
}

En vervangt die code met onderstaande code:

if (isset($photos[$album["primary"]])) {
$primary = $photos[$album["primary"]];
} else {
$primary = $flickr->getPhoto($album["primary"]);
$primary["sizes"] = $flickr->getPhotoSizes($album["primary"]);
}

ob_start();
include( $this->getDisplayTemplate("photoalbum-shortcode.html"));
$html = ob_get_contents();
ob_end_clean();
} // if count photos

Zoek rond regel 251 de volgende code:

$html = "<div class="flickr-photos">".($error ? ("<p class="error">".$error."</p>") : "").$html."</div>";

En vervang dat met de onderstaande code:

$html = "<div class="flickr-photos">".($error ? ("<p class="error">".$error."</p>") : "").$html."</div>";
if (!update_post_meta($post->ID, $key, $html)) add_post_meta($post->ID, $key, $html);
return $html;
}

Sla het bestand op en upload het bestand naar de webserver.

In het bestand httpdocs/wp-content/plugins/tantan-flickr/flickr.php hoort het volgende te worden aangepast:

Zoek naar het onderstaande rond regel 90:

// clear flickr cache
add_action("tantan_flickr_clear_cache_event", create_function("", "require_once(dirname(__FILE__)."/flickr/lib.flickr.php");$flickr = new TanTanFlickr();@$flickr->clearCacheStale();"));

En vervang die regel met onderstaand:

add_action("wp_head", create_function("$attribs=false, $content=false", "require_once(dirname(__FILE__)."/flickr/class-public.php";); if (!is_object($GLOBALS[TanTanFlickrPlugin])) $GLOBALS[TanTanFlickrPlugin] => new TanTanFlickrPlugin(); return $GLOBALS[TanTanFlickrPlugin]->header();"), 9990);

Sla het bestand op en upload het bestand naar de webserver.

Maak een nieuw bestand aan genaamd httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-shortcode.html en zet de volgende code hierin:


<?php
/*
Copy this file into your current active theme"s directory to customize this template

This template displays one Flickr photo set
*/
global $TanTanFlickrPlugin;
?>

<div id="highlight">

</div>

<div id="photos" class="photos">
<?php foreach ($photos as $photo)
echo TanTanFlickrDisplay::photo($photo, array("size" => "Square","album" => $album));
?>
</div>

<div class="flickr-meta-links">
<a href="http://www.flickr.com/photos/<?php echo $album["owner"];?>/sets/<?php echo $album["id"];?>/" target="_blank"><?php _e("View this album on Flickr", "tantan-flickr");?></a>
</div>

Sla het bestand op en upload het bestand naar de webserver.

Zo, bijna klaar… In het bestand httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-resources.php doe je de volgende wijziging:

Zoek naar de code rond regel 66:

return $prefix.'photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];

en vervang deze met:

return '../../photo/album/'.$album['id'].'/photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];

Sla het bestand op en upload het bestand naar de webserver.

Optioneel kan je de nieuwe functionaliteit nog stylen met CSS in het bestand In httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-styles.css

Bijvoorbeeld met:

div.flickr-photos h2
{
font-weight:bold;
font-size: 150%;
color: #AD2600;
text-align: left;
}

Als het goed is moet je nu bij het maken van een nieuw bericht ook een complete photoset kunnen toevoegen aan het bericht.

De WordPress TanTan Flickr plugin icm Oypo.nl

De WordPress TanTan Flickr plugin icm Oypo.nl

De WordPress TanTan Flickr plugin icm Oypo.nl zorgt ervoor dat je met je WordPress website je foto’s te verkopen in je eigen design. Het doel van Oypo is om je werk uit handen te nemen bij het verkopen van je fotos. Naar eigen zeggen maakt Oypo het u gemakkelijk. U plaatst de foto’s op internet en Oypo verzorgt op professionele wijze de volledige afhandeling van nabestellingen. Zo houdt u uw handen vrij om te doen waar u goed in bent: fotograferen! Echter is het wel zonde om op teveel plaatsen je foto’s te moeten plaatsen, zowel high als low-resolution. Je upload je foto’s al snel naar Flickr, Oypo, je eigen site, etc. Daarnaast vind ik het belangrijk om klanten een eenduidige look & feel aan te bieden. Vandaar dat het idee is ontstaan om een en andere te vereenvoudigen met een aanpassing van een plugin.

Na een paar uurtjes sleutelen is de volgende handleiding goed bruikbaar om dit ook in je eigen website in te bouwen. Als je de handleiding volgt zou je niet meer dan 30 minuten kwijt moeten zijn om dit te implementeren.

De plugin van Joe Tan is noodzakelijk voor onderstaande handleiding en kan worden gedownload vanaf zijn website. De credits voor de plugin gaan uiteraard naar Joe Tan.

De Wordpress TanTan Flickr plugin icm Oypo.nl

Nadat je de plugin geinstalleerd hebt in je WordPress administratie paneel, kunnen we aan de slag.

In totaal moeten we 1 bestand van de plugin wijzigen, 2 pagina’s en een sidebar aanmaken in WordPress. Verder moeten we een opslag voor de originele foto’s verzorgen. Laten we beginnen met het bestand aanpassen.

Open het bestand /httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-photo.html en pas het onderstaande aan:

zoek het volgende stukje code rondom regel 30:

<p><?php echo apply_filters('the_content', $photo['description']);?></p>

Hierachter plaats je het volgende:

<h2> Foto bestellen</h2><p> Als de knop 'toevoegen' hieronder wordt getoond, dan kunt u op deze website de foto bestellen. Klik op de button om de foto aan uw winkelwagen toe te voegen.</p><script language="JavaScript" src="http://www.oypo.nl/pixxer/api/orderbutton.asp?<span style="white-space: pre;"> </span> foto=<?php echo $photo['title']?>.jpg&<span style="white-space: pre;"> </span> thumb=http://LINK NAAR THUMBS DIR>?php echo $photo['title']?>.jpg& profielid=xxxxxxxxxxxxxxxxxxxxxxxxxx"></script><p>

Als toelichting op het bovenstaande geldt dat de ProfielID te vinden na in te loggen binnen Oypo en te gaan naar ‘Beheer fotoprofielen’ en daarna het fotoprofiel te selecteren en te gaan naar tabblad ‘Extra functies’.
Tevens kan er binnen dit tabblad worden aangegeven waar de originele bestanden voor Oypo.nl beschikbaar zijn, indien er een bestelling wordt geplaatst. Dit kan een eigen webserver zijn thuis. Ikzelf gebruik hiervoor de webserver op mijn NAS (Network Attached Storage). Vanuit Lightroom kan hierop direct exporteren, wat de workflow ten goede komt. Via DDNS (http://www.dyndns.com) kan hiervoor een domeinnaam worden aangemaakt, waarbij het IP adres van de webserver niet persé gelijk hoeft te blijven. Zorg er wel voor dat je een poort in je router open zet.
De link achter thumb= hoort te beginnen met http:// en verwijst naar een map met kleinere afbeeldingen van de foto’s die te koop staan. Het verdient, om performance te behouden, de voorkeur dit gewoon op de webserver te plaatsen waarop ook de website draait. De thumbs dienen minimaal 400px groot te zijn.
Bovenstaande zorgt ervoor dat Oypo.nl kijkt naar de Titel van de foto op Flickr, in plaats van de bestandsnaam. Dit omdat Flickr de bestandsnamen behoorlijk aanpast. Let erop de dat de thumbs en de highres originele dezelfde naam hebben als de titel op Flickr. Flickr haalt deze titel uit de bestandsnaam, dus waarschijnlijk gaat dit vrijwel automatisch.

Met bovenstaande kunnen we nu foto’s in een winkelwagen plaatsen, maar het is minstens net zo belangrijk dat klanten ook kunnen betalen. Hiervoor moeten we in het administratie gedeelte van WordPress een nieuwe pagina aanmaken waarin de winkelwagen kan worden ingeframed binnen de lay-out van de WordPress website.
Dit doe je door een nieuwe pagina te maken, het tabblad HTML te activeren en daarin de volgende code te plaatsen:


<iframe src="http://www.oypo.nl/pixxer/api/winkelwageniframe.asp?&cart=C053744FB4C813FA&css=LINK NAAR EIGEN CSS&wl=xxxx&retourlink=http://LINK NAAR DE TANTAN FLICKR FOTOPAGINA&nonav=0&opties=fotomail," name="pixxerframe" id="pixxerframe" width="900px" height="4000" marginwidth="0" marginheight="0" frameborder="0" scrolling="yes"></iframe>

Om bovenstaand goed te gebruiken is een korte toelichting noodzakelijk:

Binnen LINK NAAR EIGEN CSS kan de CSS van de winkelwagen worden aangepast en geupload worden naar de webserver waarop de WordPress website draait. De link naar dit bestand kan in de link worden toegevoegd. Het originele CSS bestand kan gevonden worden op de volgende locatie ( http://www.oypo.nl/pixxer/api/css/0801.css ), kopieer de inhoud in een nieuw css-bestand en daarna kan de stijl van de winkelwagen naar eigen inzicht worden aangepast, zodat de winkelwagen qua stijl mooi past in het design van WordPress. Zorg ervoor dat je je eigen CSS ‘opdringt’ door !important te gebruiken.
Binnen LINK NAAR DE TANTAN FLICKR FOTOPAGINA wordt de link geplaatst naar de TanTan Flickr plugin, bijvoorbeeld http://www.jouwsite.nl/foto/ . Dit heb je ingesteld in de TanTan Flickr plugin.

Betalen kan uiteraard alleen maar vanuit een winkelwagen, maar dan moeten we de winkelwagen natuurlijk wel aan de klanten kunnen tonen. Dat doen we met onderstaand stukje code. Het handigste werkt dit in de sidebar van je template binnen WordPress. Je kan dit doen door een widget te gebruiken genaamd ‘tekstblok’ en daar onderstaande code in te plaatsen:


<center><h3>De bestellingen worden verzorgd door:</h3><script language="JavaScript" src="http://www.oypo.nl/pixxer/api/pixxerinit.asp?"></script><h3>Aantal foto's in winkelwagen:</h3> <span id="PixxerSelectionCount"></span><div id="PixxerSelection"></div><br clear=all><p id="PixxerBestelknop"><span style="white-space: pre;"> </span> <a href="javascript:document.location='/WORDPRESS PAGINA/?cart='+winkelwagen+'&;retourlink=http://www.jouwsite.nl/foto/'">Bestellen</a><span style="white-space: pre;"> </span></p></center>

Binnen dit stukje code moet de tekst “WORDPRESS PAGINA” vervangen worden met de link naar de pagina die is aangemaakt binnen WordPress met de winkelwagen.

Als je dit op deze manier uitvoert, zal er na een bestelling de betreffende foto van bijvoorbeeld de NAS worden gehaald en zorgt Oypo.nl voor de rest.
Hierdoor hoeven klanten niet jouw website te verlaten om foto’s bij Oypo te bestellen en blijven de klanten gewoon op je website, wat over het algemeen conversieverhogend werkt.

Succes met de uitvoering en bij vragen hoor ik het graag, via de opmerkingen hieronder.

TanTan Flickr plugin: Show all images from a Flickr album in a blogpost

TanTan Flickr plugin: Show all images from a Flickr album in a blogpost

The TanTan Flickr plugin made by Joe Tan grabs your Flickr sets into your wordpress website. However it is possible to also show all the images grabbed by the plugin in a single blogpost. This post explains how.

You can grab the plugin at Joe Tans website. http://tantannoodles.com

In order to load all images from a set or album in a blogpost you need to
edit some files of the Tantan Flickr Plugin.

Below is a manual which should guide you through it.

Remarks:

Backup your files prior to editing them. I can’t be held responsible for
crashed websites or otherwise any damage. Backups prevent a lot of trouble.

By default, the Flickr API will only show 30 images at once. If you need more
then 30 images, please try it yourself to see how much images will work.

You need to edit 4 files (1 optional):


httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-resources.php

httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-shortcode.html

httpdocs/wp-content/plugins/tantan-flickr/flickr.php

httpdocs/wp-content/plugins/tantan-flickr/flickr/class-public.php

Optional:

httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-styles.css

———————————————————————-
In httpdocs/wp-content/plugins/tantan-flickr/flickr/class-public.php
———————————————————————-

Find:

$error = "Unknown size: $size.";
$size = 'Square';
}

Replace:

$key = "flickr-$album-$tag-$num-$size-$video-$photo";

With:

$albumID = $album;
$key = "flickr-$albumID-$tag-$num-$size-$video-$photo";
if ($html = get_post_meta($post->ID, $key, true)) {
return $html;
} else {

Find:

}
// grab the flickr photos
$photos = array();

$auth_token = get_option('silas_flickr_token');
$baseurl = get_option('silas_flickr_baseurl');
$baseurl_pre = get_option('silas_flickr_baseurl_pre');
$linkoptions = get_option('silas_flickr_linkoptions');
$albumData = array();

Add after:

$album = array();

Find:

$photoInfo = $flickr->getPhoto($photo);
$photoInfo['sizes'] = $flickr->getPhotoSizes($photo);
$html .= TanTanFlickrDisplay::image($photoInfo, $size);

Replace:

} elseif ($album) {
$albumData = $flickr->getAlbum($album);
$photos = $flickr->getPhotos($album);

With:

} elseif ($albumID) {
$album = $flickr->getAlbum($albumID);
$photos = $flickr->getPhotos($albumID);
} elseif ($tag) {
$photos = $flickr->getPhotosByTags($tag);
}

———————————————————————-

Find:

}
$prefix = get_bloginfo('siteurl').'/'.substr($baseurl, strlen($baseurl_pre));
$linkoptions = get_option('silas_flickr_linkoptions');

Replace:

foreach (array_slice($photos, 0, $num) as $photo) {
$html .= TanTanFlickrDisplay::photo($photo, array(
'size' => $size,
'album' => $albumData,
'scale' => $scale,
'prefix' => $prefix,
'linkoptions' => $linkoptions
));
}

With:

if (isset($photos[$album['primary']])) {
$primary = $photos[$album['primary']];
} else {
$primary = $flickr->getPhoto($album['primary']);
$primary['sizes'] = $flickr->getPhotoSizes($album['primary']);
}

ob_start();
include( $this->getDisplayTemplate('photoalbum-shortcode.html'));
$html = ob_get_contents();
ob_end_clean();
} // if count photos

Find and remove:

$html = '<div class="flickr-photos">'.($error ? ('<p class="error">'.$error.'</p>') : '').$html.'</div>';

Add:

$html = '<div class="flickr-photos">'.($error ? ('<p class="error">'.$error.'</p>') : '').$html.'</div>';
if (!update_post_meta($post->ID, $key, $html)) add_post_meta($post->ID, $key, $html);
return $html;
}

———————————————————————-
In httpdocs/wp-content/plugins/tantan-flickr/flickr.php
———————————————————————-

Find:

// clear flickr cache
add_action('tantan_flickr_clear_cache_event', create_function('', 'require_once(dirname(__FILE__)."/flickr/lib.flickr.php");$flickr = new TanTanFlickr();@$flickr->clearCacheStale();'));

Replace with:

add_action('wp_head', create_function('$attribs=false, $content=false', 'require_once(dirname(__FILE__)."/flickr/class-public.php"); if (!is_object($GLOBALS[TanTanFlickrPlugin])) $GLOBALS[TanTanFlickrPlugin] =& new TanTanFlickrPlugin(); return $GLOBALS[TanTanFlickrPlugin]->header();'), 9990);

———————————————————————-
Create httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-shortcode.html
———————————————————————-

Add:

<?php
/*
Copy this file into your current active theme's directory to customize this template

This template displays one Flickr photo set
*/
global $TanTanFlickrPlugin;
?>

<div id="highlight">

</div>

<div id="photos" class="photos">
<?php foreach ($photos as $photo)
echo TanTanFlickrDisplay::photo($photo, array('size' => 'Square' ,'album' => $album));
?>
</div>

<div class="flickr-meta-links">
<a href="http://www.flickr.com/photos/<?php echo $album['owner' ];?>/sets/<?php echo $album['id' ];?>/" target="_blank"><?php _e('View this album on Flickr' , 'tantan-flickr' );?></a>
</div>

———————————————————————-
In httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-resources.php
———————————————————————-

Find:

// return the link to where the photo should go
function href($photo, $album=null, $prefix='') {

return $prefix.'photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];

Replace:

return $prefix.'photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];

With:

return '../../foto/album/'.$album['id'].'/photo/'.$photo['id'].'/'.($album ? ($album['pagename2'].'-') : '').$photo['pagename'];

———————————————————————-
Optional:
———————————————————————-
In httpdocs/wp-content/plugins/tantan-flickr/templates/photoalbum-styles.css
———————————————————————-

Find:

div.meta img {
margin-right:5px;
}

Add after:

div.flickr-photos h2
{
font-weight:bold;
font-size: 150%;
color: #AD2600;
text-align: left;
}