0

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?

2 Answers 2

1

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();
}

?>

1
  • If you're modifying the original query, you should use wp_reset_query() at the end.
    – kaiser
    Feb 13, 2011 at 15:32
0

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,
);
1
  • Sorry, I've forgot to remark it. I do it this way, but still no succeed.
    – glazsasha
    Oct 21, 2010 at 15:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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