glazsasha
  • 0
Новичок

Страница тегов не для поста

  • 0

В соответствии с WordPress: страница категории не для сообщений. Я использую wordpress для создания веб-сайтов для флеш-игр, поэтому у меня нет определенной страницы для постов. Я добавляю каждую игру с помощью post-new.php?post_type=game, и вы видите, что это не обычный пост для WordPress. Сейчас пытаюсь сделать то же самое для тегов, но опять застрял. что у меня сейчас:

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

По сути, я просто заменил «$ cat» на «$ tag» в соответствии с кодексом, но у меня есть только страница с формой поиска отсюда.

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

и не запускать игры для определенных тегов?

Share
  1. Я решил свою задачу! «begin_roundblock» и «end_roundblock» — это мои функции для создания блоков для игр. ‘cols’ и ‘rows’ — это числовые столбцы rows и rows для игр.

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

    ?>

    • 0
  2. category__in это параметры категории. используйте tag__in вместо этого:

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

Оставить ответ

You must login to add an answer.