Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

According with Wordpress: category page not for post's. I use wordpress to create web sites for flash games, so I don't have certain page for post's. I add each game by post-new.php?post_type=game and u can see it's not the regular post for wordpress. Now I try make the same for tags, but stuck again. what I have now:

<?php
if (is_page() ) {
$tag = get_post_meta($posts[0]->ID, 'tag', true);
}
if ($tag) {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$post_per_page = 4; // -1 shows all posts
$do_not_show_stickies = 1; // 0 to show stickies

$args=array(
'post_type' => 'game',
'tag__in' => array($tag),
'orderby' => 'date',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => $post_per_page,
);
$temp = $wp_query;  // assign orginal query to temp variable for later use   
$wp_query = null;
$wp_query = new WP_Query($args); 
if( have_posts() ) : 
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
 <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?    php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
      <?php the_content('Read the rest of this entry »'); ?>
    </div>
    <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Category in <?php the_category(', ') ?> |</p>
  </div>
<?php endwhile; ?>
<div class="navigation">
  <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
  <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
</div>
<?php else : ?>

<h2 class="center">Not Found</h2>
<p class="center">Sorry, but you are looking for something that isn't here.</p>
<?php get_search_form(); ?>

 <?php endif; 

 $wp_query = $temp;  //reset back to original query

}  // if ($tag)

Basicly, I've just change '$cat' for '$tag' according with codex, but I have only page with search form from here

 <h2 class="center">Not Found</h2>
 <p class="center">Sorry, but you are looking for something that isn't here.</p>
 <?php get_search_form(); ?>

and don't nave any game for certain tags?

share|improve this question

2 Answers 2

up vote 1 down vote accepted

I've solved my task! 'begin_roundblock' and 'end_roundblock' are my functions for making blocks to games. 'cols' and 'rows' are number columns rows and rows for games.

if ($tag) {
    $cols = 9;
    $rows = 5;
    $paged = (('paged')) ? get_query_var('paged') : 1;
    $post_per_page = $cols * $rows; // -1 shows all posts
    $do_not_show_stickies = 1; // 0 to show stickies

$args=array(
    'post_type' => 'game',
    'tag' => $tag,
    'orderby' => 'date',
    'order' => 'DESC',
    'paged' => $paged,
    'posts_per_page' => $post_per_page,
    'caller_get_posts' => $do_not_show_stickies
            );

$wp_query = new WP_Query($args);
begin_roundblock(urldecode($tag), 'games-pages-tag', null);
if( have_posts()) :
    echo '<div class="games-list-block-content">';
    $i = 0;
    while (have_posts())
    {
        the_post();

        $class = 'game-info';
        if ($i % $cols == 0)
            $class .= ' clear';

        echo '<div class="'.$class.'"><a href="'.get_permalink().'">';
        the_post_thumbnail(array(60, 60), array('class' => 'game-icon'));
        $title = get_the_title();
        if (mb_strlen($title) > 10)
            $title = mb_substr($title, 0, 7).'...';
        echo '<span class="game-title">'.$title.'</span></a></div>';
        $i++;
    } ?>
    <div class="navigation clear game-info-last-row">
      <span class="alignleft"><?php next_posts_link('« Older Entries') ?></span>
      <span class="alignright"><?php previous_posts_link('Newer Entries »') ?></span>
    </div>
  </div>
<?php else: ?>
    <h2 class="center">Not Found</h2>
    <p class="center">Sorry, but you are looking for something that isn't here.</p>
    <?php get_search_form(); ?>
<?php endif;
end_roundblock();
}

?>

share|improve this answer
    
If you're modifying the original query, you should use wp_reset_query() at the end. –  kaiser Feb 13 '11 at 15:32

category__in is a category parameters. use tag__in instead:

$args=array(
  'post_type' => 'game',
  'tag__in' => array($tag),
  'orderby' => 'date',
  'order' => 'DESC',
  'paged' => $paged,
  'posts_per_page' => $post_per_page,
);
share|improve this answer
    
Sorry, I've forgot to remark it. I do it this way, but still no succeed. –  glazsasha Oct 21 '10 at 15:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.