[WordPress] Utiliser Twig et Timber à la place de PHP

J’ai changé récemment d’agence et sur WordPress on n’utilise plus la syntaxe PHP mais l’association de Twig et de Timber.

Avec cette nouvelle syntaxe, le PHP et le HTML sont désormais séparé (un modèle MVC sauf que l’on s’accède pas au Controleur).

Du coup, voici quelques astuces utilisable pour cette nouvelle syntaxe :

Pour faire un var_dump

– Dans le .php

var_dump($context);

– Dans le .html

{{dump(NOM_VAR)}}

Pour faire un permalink dans une boucle

{{post.get_permalink(ID_PAGE)}}

post == nom de la variable Timber

Pour tronquer le contenu (Source)

– Sans afficher les points de suspensions :

{{post.content | truncate(20, false, '')}}

– En affichant les points de suspensions :

{{post.content | truncate(20, true, '...')}}

– Syntaxe raccourcie (mais ne permet pas de rajouter des points de suspension) :

{{post.content[:25]}}

– Vérifier si le contenu est plus longs, si oui on le coupe, si non, on le laisse tel quel

{{post.content|length > 25 ? (post.content[:25] ~ '…') : post.content}}

Récupérer un post meta

– Dans le .php

$context['NOM'] = get_post_meta($context['post']->ID, 'NOM_CUSTOM_FIELD', true);

– Dans le .html

{% if ss_titre %}{{ss_titre}}{% endif %}

Récupération des champs créé avec ACF Source

Champ Wysiwyg ou text

{{post.get_field('my_wysiwyg_or_text_field')}}

Champ image
– Manière rapide (pour la plupart des situations)

– Manière plus complète (pour des situations spéciales)
Dans la page PHP

$post = new TimberPost();
if(isset($post->hero_image) && strlen($post->hero_image)) $post->hero_image = new TimberImage($post->hero_image);
$data = Timber::get_context();
$data['post'] = $post;
Timber::render('single.twig', $data);

Dans la page HTML

Afficher un post thumbnail

– Par défaut

– Avec une taille spécifique

– Recadré automatiquement

– Rétina

Récupération d’un Custom Post Type

– Dans le .php

$args = array(
	'posts_per_page' => -1,
	'post_type'		 => 'NOM_DU_CUSTOM_POST',
);
$context['NOM_VARIABLE'] = Timber::get_posts($args);

– Dans le .html

{% for NOM_VAR in NOM_VARIABLE %}
	{{NOM_VAR.post_title}}
{% endfor %}

Sources

Une réflexion sur “ [WordPress] Utiliser Twig et Timber à la place de PHP ”

Les commentaires sont fermés.