Set a category for a page

My current theme has a portfolio section where you can have an array items based on what category they are in. My problem is that I have several pages that I want to be in the portfolio section but can’t add them there because you can’t assign categories to individual pages only posts. Is there any method or plugin around this issue?

This is some code that I believe calls the category in my portfolio.php:

Read More
<?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; ?>

Thanks Nick.

Related posts

Leave a Reply

1 comment

  1. Category is a taxonomy that applies to Posts. Pages are not Posts. Pages are Pages.

    If you need your content to use the Category taxonomy, you have a couple options:

    1. Use Posts, rather than Pages, for that content.
    2. Register the Category taxonomy for static Pages, e.g. by placing the following in functions.php (or in a Plugin):

    Which will enable Categories for static Pages.

    Grr… code doesn’t want to show:

    <?php 
    register_taxonomy_for_object_type( 'category', 'page' ); 
    ?>
    

    Edit 2

    The correct way to modify the main loop query is via pre_get_posts, e.g. like so:

    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' );
    

    Using pre_get_posts is preferred over using query_posts(), though the original solution works in this case.

    (Original Solution)

    To get your categorized Pages to display in the Loop on your category archive indexes, you’ll need to modify the Loop query in category.php, which you do using the query_posts() function. e.g.:

    <?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 );
    ?>
    

    Place this code before you output the Loop.