Mon thème actuel comporte une section de portefeuille dans laquelle vous pouvez avoir un tableau d'éléments en fonction de la catégorie dans laquelle ils se trouvent. Mon problème est que j'ai plusieurs pages que je souhaite voir figurer dans la section de portefeuille, mais que je ne peux pas les ajouter car vous pouvez " t attribuer des catégories à des pages individuelles uniquement. Existe-t-il une méthode ou un plugin autour de ce problème?
C’est un code qui, à mon avis, appelle cette catégorie dans mon portfolio.php:
<?php if(is_category() && in_category($current_id) || post_is_in_descendant_category($current_id)){?>
<h1><?php single_cat_title(); ?></h1>
<ul class="portfolioCategs">
<li><a href="<?php echo get_category_link(get_option('boldy_portfolio'))?>">All projects</a></li>
<?php
$categories = get_categories('hide_empty=1&child_of='.$categs);
foreach ($categories as $cat) {
echo ('<li><a href="');
echo (get_category_link($cat->cat_ID).'">'.$cat->cat_name.'</a></li>');
}
?>
</ul>
<?php } ?>
<div style="clear:both"></div>
<div class="gallery">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="portfolioItem">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<a href="<?php echo get_thumb_urlfull($post) ?>" rel="prettyPhoto" title="<?php the_title();?>"><?php the_post_thumbnail(); ?></a>
<p><?php the_excerpt() ?></p>
</div>
<?php endwhile; ?>
Merci Nick.
La catégorie est une taxonomie qui s'applique aux postes. Les pages ne sont pas des messages. Les pages sont les pages.
Si vous avez besoin que votre contenu utilise la taxonomie par catégorie, vous avez plusieurs options:
Enregistrez la taxonomie de catégorie pour les pages statiques, par exemple. en plaçant ce qui suit dans functions.php
(ou dans un plugin):
Ce qui activera les catégories pour les pages statiques.
Grr ... le code ne veut pas montrer:
<?php
register_taxonomy_for_object_type( 'category', 'page' );
?>
Le moyen correct de modifier la requête de la boucle principale est via pre_get_posts
, par exemple. ainsi:
function wpse29834_filter_pre_get_posts( $query ) {
if ( is_category() && $query->is_main_query() ) {
$query->set( 'post_type', array( 'post', 'page' ) );
}
}
add_action( 'pre_get_posts', 'wpse29834_filter_pre_get_posts' );
L'utilisation de pre_get_posts
est préférable à l'utilisation de query_posts()
, bien que la solution d'origine fonctionne dans ce cas.
Pour que vos pages catégorisées soient affichées dans la boucle des index d'archives de vos catégories, vous devez modifier la requête de boucle dans category.php
, à l'aide de la fonction query_posts()
. par exemple.:
<?php
// Declare the global
global $wp_query;
// Define our custom args
// We're telling the query to use
// both Posts and Pages
$custom_args = array( 'post_type' => array( 'post', 'page' ) );
// Merge the default query with our custom query
$query_args = array_merge( $wp_query->query, $custom_args );
// Finally, query posts based on our custom args
query_posts( $query_args );
?>
Placez ce code avant la sortie de la boucle.