J'utilise ce code pour extraire une image en fonction de la catégorie d'un article. Les images portent le nom de la catégorie qu'elles représentent. Par conséquent, un article de la catégorie 50 apparaît dans le fichier 50.jpg.
<?php
foreach((get_the_category()) as $category) {
echo '<img src="/path/to/file/' . $category->cat_ID . '.jpg" alt="' . $category->cat_name . '" />';
}
?>
J'aimerais pouvoir faire la même chose mais inclure un fichier php (également nommé d'après la catégorie - donc 50.php en utilisant l'exemple ci-dessus).
Quelle est la meilleure façon de faire cela?
<?php
foreach((get_the_category()) as $category) {
if( file_exists( '/path/to/file/to/include/' . $category->cat_ID . '.php' ) )
include( '/path/to/file/to/include/' . $category->cat_ID . '.php' );
}
?>
Cela devrait faire l'affaire. Si le fichier n'existe pas, il le saute simplement. Cela peut être coûteux si vous avez une grande quantité de catégories à parcourir, cependant.
Si vous préférez utiliser des fonctions personnalisées par catégorie, procédez comme suit:
<?php
// Create one function like this for each category
function my_custom_category_50(){
// Do some awesome stuff.
}
// Use this to loop through the categories
foreach((get_the_category()) as $category) {
$func = 'my_custom_category_' . $category->cat_ID;
if( function_exists( $func )
$func();
}
?>
Cette méthode a l'avantage de ne pas nécessiter d'inclusion de fichier. Cet avantage serait le plus visible si vous atteignez la même catégorie plusieurs fois par page chargée.