Voilà une excellente nouvelle que cette annonce à l’effet que BuddyPress pourra maintenant rouler comme un plugin de Wordpress, et n’aura plus (nécessairement) besoin de Wordpress MU.
J’ai toujours été extrêmement septique à l’endroit de MU – dont on annonce déjà la mort lors du passage en version 3.0 de WP – et de savoir qu’on pourra utiliser les fonctionnalités incroyable de BuddyPress sur une installation simple m’emballe.
Amis développeurs, avez-vous eu l’occasion de le tester un peu?
Le thème P2 de Wordpress – qui émule l’interface d’un hybride Twitter/Facebook imaginaire – vient enfin d’être corrigé de [la plupart de] ses nombreuses faiblesses.
La principale lacune était au niveau de son intégration à un environnement déjà existant. Jadis, un site voulant l’utiliser devait s’en contenter puisque sa surcharge de scripts et la lourdeur de son code le rendait VRAIMENT trop complexe/long/impossible à extraire et à insérer dans un autre thème. Impossible donc de se créer une section « P2″ fonctionnant parallèlement à un blogue traditionnel évoluant sur la même installation de Wordpress. C’est maintenant corrigé :
We also decided to go a step further and rework P2 so that it could easily be used as a parent theme and extended with child themes. This will allow theme designers to create awesome new theme designs without having to duplicate all of the existing P2 features.
De plus, de nouvelles options s’offrent à nous au niveau de la personnalisation du thème via l’admin de Wordpress, de même que la venue de nouveaux types attribuables au contenu qu’on y envoie : status, billet de blogue, citation ou lien externe. Pas bête!
Je ne penserais pas renvoyer ce blogue sur P2, mais pour se monter une sorte de HUB SOCIAL, ça m’apparait être vraiment une avenue à considérer…
- Merci à Carl pour le tuyau.
Y a du beau, très beau thème ici…
Merci encore, Smashing Magazine!
Voici une petite astuce qui vient bien compléter mon script pour raccourcir une URL avec l’API de http://bit.ly.
Tout ceci part avec l’API de Tweetmeme cette fois, laquelle permet d’obtenir le nombre de fois qu’un billet de votre blogue a été affiché sur Twitter soit en insérant leur nom dans le tweet (@tweetmeme) ou encore en ayant passé par http://bit.ly pour raccourcir l’URL (les deux entités partagent leurs données).
Il suffit tout simplement de récupérer les données XML issues de cette ressource : http://api.tweetmeme.com/url_info?url=##votre-URL##, ce qui renvoie quelque chose ressemblant à ceci :
<result> <status>success</status> <story> <title>Google Wave : et si… / Publicité | Gérant d'estrade</title> <url>http://www.estrade.ca/blogue/web/reseaux-sociaux/google-wave-et-si.html</url> <media_type>news</media_type> <created_at>2009-11-09 20:34:54</created_at> <url_count>1</url_count> <tm_link>http://tweetmeme.com/story/264195236</tm_link> <comment_count>0</comment_count> <excerpt> Sur mon blogue : Google Wave : et si… http://bit.ly/10xaQW </excerpt> </story> </result>
Pour le récupérer très simplement (avec PHP 5) vous pouvez utiliser cette fonction, à ajouter dans la page functions.php de votre thème :
function tweetCount($url) { $fichier = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url); $xml = new SimpleXmlElement($fichier); echo 'Ce billet a <a href="'.$xml->story->tm_link.'" target="_blank">'.$xml->story->url_count.' tweets</a>!'; }
Ensuite dans votre thème – probablement dans la page single.php pour affecter uniquement les billets – ajoutez un simple appel à la fonction en passant votre permalien en paramètre :
tweetCount($post->permalink);
Ceci affichera le nombre de tweets contenant l’URL en même temps qu’un lien pour les consulter.
Un petit truc bien utile découvert aujourd’hui pour modifier les informations utilisées dans vos fils RSS de Wordpress.
En fait, je n’ai jamais compris pourquoi on ne pouvait pas modifier le format des fils RSS avec une page d’un thème et que tout était bien ancré dans le coeur de WP ( dans /wp-includes/feed-rss2.php)… mais bon, j’ai constaté que c’était presque aussi simple de le faire avec un hook dans le fichier functions.php de votre thème préféré.
Pour ce faire, il suffit d’ajouter les fonctions de modification suivantes pour chacun des éléments à modifier :
function nouveau_titre_RSS() { $txt = get_the_title(); return $txt . ' / estrade.ca'; } function nouveau_texte_RSS() { $txt = get_the_excerpt(); return $txt . '<br /><br />Plus de nouvelles sur <a href="http://estrade.ca/">estrade.ca</a>'; }
Ensuite, vous appelez ces filtres et les appliquez aux routines d’affichage du fil RSS :
add_filter('the_excerpt_rss', 'nouveau_texte_RSS'); add_filter('the_title_rss', 'nouveau_titre_RSS');
Dans cet exemple, on ne fait qu’ajouter un peu de texte aux éléments TITLE et DESCRIPTION d’un fil RSS… mais vous voyez un peu tout ce qui peut être possible de faire avec ça!
Voici un truc tout simple pour créer autant de barres latérales (sidebars) que vous le souhaitez, afin de les équiper de widgets et les afficher dans diverses sections.
Ça devient très utile quand, par exemple, on veut créer une sidebar différente pour une page d’accueil (index.php), une page d’accueil de catégorie (archive.php) et un article seul (single.php).
Tout d’abord, il faut initialiser les barres latérales. Dans le fichier functions.php ajoutez :
if ( function_exists('register_sidebar') ) { register_sidebar(array( 'name' => 'Droite - Accueil', 'before_widget' => '<div id="%1$s" class="widgetContainer %2$s">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widgetTitle">', 'after_title' => '</h3>' )); register_sidebar(array( 'name' => 'Droite - Billet', 'before_widget' => '<div id="%1$s" class="widgetContainer %2$s">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widgetTitle">', 'after_title' => '</h3>' )); register_sidebar(array( 'name' => 'Droite - Categorie', 'before_widget' => '<div id="%1$s" class="widgetContainer %2$s">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widgetTitle">', 'after_title' => '</h3>' )); }
Vous verrez donc à ce moment les trois barres latérales apparaître dans le panneau d’administration, sous Apparence / Widgets.
Par la suite, il suffit d’inclure la bonne barre latérale dans le bon contexte. Pour ce faire, créez – si ce n’est pas déjà fait – un fichier sidebar.php contenant ceci :
if(is_home()) { //accueil if (function_exists('dynamic_sidebar')) dynamic_sidebar('Droite - Accueil'); } elseif( is_category('nom-categorie') ) { //catégorie spécifique if (function_exists('dynamic_sidebar')) dynamic_sidebar('Droite - Categorie'); } elseif( is_single() ) { //dans un billet if (function_exists('dynamic_sidebar')) dynamic_sidebar('Droite - Billet'); }
Je profite de cette tribune pour vous poser une question :
Avez-vous déjà trouvé (ou mieux, réalisé) des études de cas ou études comparatives traitant de mise en cache pour un blogue roulant sous Wordpress?
Je viens d’installer WP Super Cache sur quelques sites à fort trafic, la réponse côté serveur semble très bonne, mais je ne sais pas si cette solution est la plus optimale possible. Il y a tant d’alternatives (à commencer par DB Cache qui m’intrigue, ou encore W3 Total Cache qui paraît toutefois un peu instable) que je peine à me brancher définitivement.
Aussi, ces plugins comportent nombre de configurations (mise en cache de toutes les pages, uniquement pour les visiteurs non-connectés, définition de zones dynamiques, etc.) et je voulais chercher à savoir si des configurations optimales existent pour maximiser le bien-être de la machine autant que du visiteur.
Alors?
Une idée? Un témoignage? Une référence?
Un petit truc d’apparence bien simple : comment créer une page PHP personnalisée permettant quand même d’accéder à toutes les variables et fonctions propres à l’environnement de notre blogue Wordpress. La réponse?
Créer une page dans votre dossier de thème :
/wp-content/themes/nom-du-theme/page.php
Au tout début de cette page, insérez les instructions suivantes :
<?php define('WP_USE_THEMES', false); //chemin relatif à la racine de votre blogue //on ne peut pas utiliser les variables de WP, donc on y va manuellement require('../../../wp-blog-header.php'); ?>
Vous pourrez donc utiliser toutes les fonctions propres à Wordpress (principalement le loop) dans votre page sur mesure.
Notez que pour des raisons esthétiques, ça pourrait être bien de songer à embellir l’URL d’accès à cette page grâce à MOD_REWRITE et votre fichier .htaccess.
Il est extrêmement simple de créer un shortcode dans Wordpress. Ces derniers se reconnaissent à leur structure rappelant le BBcode des forums de discussion : [valeur] et sont tout simplement remplacés par leur équivalent en code XHTML de sortie.
Pour créer votre shortcode, créez simplement une nouvelle fonction dans la page functions.php de votre thème :
function reafficheTitre() { global $post,$posts; //contenu $html = '<h3><a href="' . the_permalink() . '">' . $post->post_title .'</a></h3>'; //output return $html; } add_shortcode('titre', 'reafficheTitre');
Ceci insèrera un lien vers l’article (via the_permalink()) à l’endroit où vous aurez ajouté le shortcode [titre] dans votre texte.
Utiliser les shortcodes à l’extérieur du loop
Ceci peut devenir vraiment utile et puissant d’utiliser les shortcodes à l’extérieur du loop (dans vos thèmes ou encore dans vos widgets, par exemple). Pour ce faire, il suffit de parser votre contenu comme s’il était traité dans le loop :
$contenu = apply_filters('the_content', '[titre]'); echo $contenu ;
Ceci va donc utiliser le filtre qui traite habituellement le texte dans le loop de Wordpress et l’appliquer à ce que vous avez passé en paramètre.
Mais on s’entend que le plus simple, dans ce cas précis, serait de faire un simple appel à votre fonction :
echo reafficheTitre();
Pour plus d’informations je vous invite à consulter cet excellent article.
Voici un script utile, un peu à l’image de celui permettant d’aller chercher la dernière image associée à un billet. Ce dernier permet, via une expression régulière (regex) d’extraire l’URL de la première image INSÉRÉE dans un article de blogue (et non attachée comme pièce-jointe).
Il suffit de l’intégrer au fichier functions.php de votre thème :
function getFirstImage() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)) return; return $first_img; }
Pour appeler la fonction, il suffit d’intégrer ceci dans le loop :
$img = getFirstImage();
développement / Catégories
Twitter @Molaram
Liens partagés
- Collection de vecteurs floraux à télécharger
- Stop that... it's cold. (pic)
- Installer Google Analytics sur sa page fan Facebook [rédacteur invité]
- Lost iPod Touch (pic)
- Canada just won the Olympic Gold in Hockey (pic)
- RedEye mini turns your iPhone into a universal remote control, requires OS 3.2
- Ghost in the Machine (link)
- Google Buzz: flop ou force disruptive?
- Trauma dans Chatroulette!
- Google Buzz Boosts Sharing On Google Reader By 35 Percent
Mots-clefs
Ailleurs
- 100% Hockey
- AccesOWeb
- Alsacréations
- Canadiens de Montréal
- Carl Charest
- Carl-Frédéric De Celles
- Chrystian Guy
- Debbie Rouleau
- Dominic Arpin
- Eric Baillargeon
- Famille Enfants Parents
- Goudaille
- Histoires de Geek
- Il Blogue
- Influenceur – Blogue Tendance
- Martin Petit
- Michel Dumais
- Nicolas Langelier
- Patrick Lagacé
- PhotosMax
- Samuel Parent
- Sébstien Goulet
- Sportnographe
- Stéphane Guérin
- Stéphane Jose
- Tchuvak’s Life
- Yannick Manuri
- Ze Canada
