2013-11-07 2 views
1

Я борюсь с огромной проблемой :(Целый день я пытаюсь работать на петле. Я использую тему Wordpress по умолчанию. Если я ставил петлю на сообщения index.php или home.php, они работают нормально. если я помещаю петлю в какой-то шаблонный шаблон, например blog-template.php, я получаю пустой экран? Как работает цикл в index.php или archive.php или categories.php, но не на каких-либо шаблонах страниц?Wordpress post loop - не работает

 <?php if (have_posts()) : ?> 

     <?php /* The loop */ ?> 
     <?php while (have_posts()) : the_post(); ?> 
      <?php get_template_part('content', get_post_format()); ?> 
     <?php endwhile; ?> 

     <?php twentythirteen_paging_nav(); ?> 

    <?php else : ?> 
     <?php get_template_part('content', 'none'); ?> 
    <?php endif; ?> 

Как я сказал, с этим кодом на index.php я получаю graet результаты наряду с prev/next стр. Но если я использую на файл шаблона я получил пустой экран? Пожалуйста, помогите

+0

Ваша проблема не связана с вашим кодом. Из-за синтаксической ошибки вы получаете пустую страницу. Включить debug, установив debug в true в wp-config.php. –

ответ

2

в странице Templ ели вы должны пройти, прежде чем query_posts have_posts

$args = array(
'post_type'=> 'post', 

); 
query_posts($args); 
+0

yes Вам нужно разместить код, похожий на шаблон страницы –

+0

, поэтому в базовом коде есть \t \t 'после'); \t \t \t query_posts ($ args); ? > \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t

+0

да, вы пробовали это? Это работает? –

0

Пожалуйста, следуйте инструкциям для создания пользовательского шаблона страницы:

  1. Создать новый файл т.е. на заказ-страницы-template.php. Скопируйте и вставьте следующие строки комментирующие в верхней части файла

    <?php 
    /* 
    
    Template Name: Custom Template 1 
    
    */ 
    
    ?> 
    
  2. Скопируйте и вставьте следующие коды в пользовательской-страницы-template.php:

    <?php 
    get_header(); 
    ?> 
    
    <div id="primary" class="content-area"> 
        <div id="content" class="site-content" role="main"> 
    
        <?php /* The loop */ ?> 
        <?php while (have_posts()) : the_post(); ?> 
    
         <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
          <header class="entry-header"> 
           <?php if (has_post_thumbnail() && ! post_password_required()) : ?> 
           <div class="entry-thumbnail"> 
            <?php the_post_thumbnail(); ?> 
           </div> 
           <?php endif; ?> 
    
           <h1 class="entry-title"><?php the_title(); ?></h1> 
          </header><!-- .entry-header --> 
    
          <div class="entry-content"> 
           <?php the_content(); ?> 
           <?php wp_link_pages(array('before' => '<div class="page-links"><span class="page-links-title">' . __('Pages:', 'twentythirteen') . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>')); ?> 
          </div><!-- .entry-content --> 
    
          <footer class="entry-meta"> 
           <?php edit_post_link(__('Edit', 'twentythirteen'), '<span class="edit-link">', '</span>'); ?> 
          </footer><!-- .entry-meta --> 
         </article><!-- #post --> 
    
         <?php comments_template(); ?> 
        <?php endwhile; ?> 
    
    </div><!-- #content --> 
    

  3. На панели администратора создайте новую страницу и выберите шаблон страницы «Пользовательский шаблон 1» на панели атрибутов страницы (справа). Смотрите следующую картинку, чтобы выбрать шаблон страницы:

    enter image description here

  4. Теперь сохраните и увидеть вид. Он должен работать.
+0

Привет, я тоже подхожу к вашему подходу :) Я создал новый шаблон, вставлю код, создал новая страница выбирает правильный tempalte курс и -> http://brezilla.info/drwerner/new-page/. я должен упомянуть, что я использую новую установку wordperss и новую тему, я не изменял функции. php или что-то еще –

+0

вы разместили некоторый контент на странице? Поскольку я видел, что заголовок показан так, контент должен быть показан. – StreetCoder

+0

nope без содержания пустая страница с заголовком. я хочу получить эти сообщения на странице блога, я не верил, что это так сложно :) Решение Bhumi Shah работает, кроме кнопок более старых/более новых сообщений –

3

Место это предшествующий цикл. Я пережил одну и ту же проблему.

<?php query_posts('post_type=post') ?>

EDIT:

Это быстрое решение вопроса, я полагаю. Я просто посмотрел на функцию query_post, и wordpress codex, похоже, жестоко осуждает ее; решительно высмеивая его как неэффективное и чрезмерно упрощенное в использовании. Однако он рекомендует get_posts.

Вы не единственный человек, который страдает этой проблемой. Wordpress вместе со всеми остальными, кажется, легко документирует использование цикла, но не реально ... реализует его. Я думаю, что большинство сайтов просто сочтут это само собой разумеющимся, вы знаете, что делаете.

вздох.

+0

-1 для использования 'query_posts' –

Смежные вопросы