J'ai des modèles de publication unique dans un dossier de mon thème enfant marqué "unique". J'ai besoin des sous-catégories pour utiliser le même modèle que leur parent. J'ai lu une douzaine de tutoriels qui avaient tous plus de 3 ans et ne semblent plus fonctionner. Alors, quelle est la bonne façon de procéder? Voici ce que j'essayais.
function pa_category_top_parent_id ($catid) {
while ($catid) {
$cat = get_category($catid); // get the object for the catid
$catid = $cat->category_parent; // assign parent ID (if exists) to $catid
// the while loop will continue whilst there is a $catid
// when there is no longer a parent $catid will be NULL so we can assign our $catParent
$catParent = $cat->cat_ID;
}
return $catParent;
}
define(SINGLE_PATH, STYLESHEETPATH . '/single');
/**
* Filter the single_template with our custom function
*/
add_filter('single_template', 'my_single_template');
/**
* Single template function which will choose our template
*/
function my_single_template($single) {
global $wp_query, $post;
foreach((array)get_the_category() as $cat) :
$categoriapadre= pa_category_top_parent_id ($cat);
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $categoriapadre . '.php'))
return SINGLE_PATH . '/single-cat-' . $categoriapadre . '.php';
endforeach;
return $single;
}
Vous devriez essayer d'utiliser la hiérarchie WordPress au lieu de singe-cat-
.
Créez votre modèle de catégorie parent à l'aide de category.php
ou category-{slug}.php
, puis utilisez la technique ici, http://codex.wordpress.org/User:MichaelH/MyPlugins .
Ou pour plus d'options, essayez ce plugin, http://wordpress.org/extend/plugins/category-template-hierarchy/