2014-01-06 3 views
0

У меня возникла проблема с показом сообщений на моей индексной странице в wordpress, где заголовок и содержимое не отображаются. В настоящее время я модифицирование index.php из двадцать двенадцать шаблона, чтобы показать собственный пост по идентификатору, моя цель состоит в том, чтобы показать 3 сообщения на моей странице индекса, вот мой код ниже:Настройка Wordpress для показа сообщений по id на странице индекса

<?php 
/** 
* The main template file 
* 
* This is the most generic template file in a WordPress theme 
* and one of the two required files for a theme (the other being style.css). 
* It is used to display a page when nothing more specific matches a query. 
* For example, it puts together the home page when no home.php file exists. 
* 
* @link http://codex.wordpress.org/Template_Hierarchy 
* 
* @package WordPress 
* @subpackage Twenty_Twelve 
* @since Twenty Twelve 1.0 
*/ 

get_header(); ?> 

    <div id="primary" class="site-content"> 
     <div id="content" role="main"> 
     <br><br> 
     <?php if (have_posts()) : ?> 

      <?php /* Start the Loop */ ?> 
      <?php while (have_posts()) : the_post(); ?> 
       <?php get_template_part('content', get_post_format()); ?> 
      <?php endwhile; ?> 

      <?php twentytwelve_content_nav('nav-below'); ?> 

     <?php else : ?> 

      <article id="post-0" class="post no-results not-found"> 

      <?php if (current_user_can('edit_posts')) : 
       // Show a different message to a logged-in user who can add posts. 
      ?> 
       <header class="entry-header"> 
        <h1 class="entry-title"><?php _e('No posts to display', 'twentytwelve'); ?></h1> 
       </header> 

       <div class="entry-content"> 
        <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve'), admin_url('post-new.php')); ?></p> 
       </div><!-- .entry-content --> 

      <?php else : 
       // Show the default message to everyone else. 
      ?> 
       <header class="entry-header"> 
        <h1 class="entry-title"><?php _e('Nothing Found', 'twentytwelve'); ?></h1> 
       </header> 

       <div class="entry-content"> 
        <p><?php _e('Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve'); ?></p> 
        <?php get_search_form(); ?> 
       </div><!-- .entry-content --> 
      <?php endif; // end current_user_can() check ?> 

      </article><!-- #post-0 --> 

     <?php endif; // end have_posts() check ?> 

     </div><!-- #content --> 
    </div><!-- #primary --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 

Код выше по умолчанию index.php из двадцати двенадцати шаблонов в wordpress. Я заменил этот код:

<?php /* Start the Loop */ ?> 
<?php while (have_posts()) : the_post(); ?> 
<?php get_template_part('content', get_post_format()); ?> 
<?php endwhile; ?> 
<?php twentytwelve_content_nav('nav-below'); ?> 

Для этого, потому что я хочу показать только сообщение 23 по id.

<?php $the_query = new WP_Query('page_id=23') ?> 
<?php while ($the_query->have_posts()) : ?> 
<?php $the_query->the_post(); ?> 
<?php the_title(); ?> 
<?php the_content(); ?> 
<?php endwhile; ?> 
<?php wp_reset_postdata(); ?> 

Таким образом, весь код для моего нового index.php является:

<?php 
/** 
* The main template file 
* 
* This is the most generic template file in a WordPress theme 
* and one of the two required files for a theme (the other being style.css). 
* It is used to display a page when nothing more specific matches a query. 
* For example, it puts together the home page when no home.php file exists. 
* 
* @link http://codex.wordpress.org/Template_Hierarchy 
* 
* @package WordPress 
* @subpackage Twenty_Twelve 
* @since Twenty Twelve 1.0 
*/ 
get_header(); 
?> 

<div id="primary" class="site-content"> 
    <div id="content" role="main"> 
     <br><br> 
     <?php if (have_posts()) : ?> 

      <?php $the_query = new WP_Query('page_id=23') ?> 
      <?php while ($the_query->have_posts()) : ?> 
       <?php $the_query->the_post(); ?> 
       <?php the_title(); ?> 
       <?php the_content(); ?> 
      <?php endwhile; ?> 
      <?php wp_reset_postdata(); ?> 

     <?php else : ?> 

      <article id="post-0" class="post no-results not-found"> 

       <?php 
       if (current_user_can('edit_posts')) : 
        // Show a different message to a logged-in user who can add posts. 
        ?> 
        <header class="entry-header"> 
         <h1 class="entry-title"><?php _e('No posts to display', 'twentytwelve'); ?></h1> 
        </header> 

        <div class="entry-content"> 
         <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve'), admin_url('post-new.php')); ?></p> 
        </div><!-- .entry-content --> 

       <?php 
       else : 
        // Show the default message to everyone else. 
        ?> 
        <header class="entry-header"> 
         <h1 class="entry-title"><?php _e('Nothing Found', 'twentytwelve'); ?></h1> 
        </header> 

        <div class="entry-content"> 
         <p><?php _e('Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve'); ?></p> 
        <?php get_search_form(); ?> 
        </div><!-- .entry-content --> 
    <?php endif; // end current_user_can() check ?> 

      </article><!-- #post-0 --> 

<?php endif; // end have_posts() check ?> 

    </div><!-- #content --> 
</div><!-- #primary --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 

Это все, что у меня есть ребята. Вы можете мне помочь? Что-то не так, если показывать сообщения? Спасибо заранее, ребята. :)

ответ

1

подход, если и не хотите использовать Wp_query Попробуйте это:

<div id="primary" class="site-content"> 
    <div id="content" role="main"> 
     <br><br> 
     <?php if (have_posts()) : ?> 
     <?php $post = get_post(23);?> 
     <?php echo $post->post_title; ?> 
     <?php echo $post->post_content; ?> 
     <?php else : ?> 

      <article id="post-0" class="post no-results not-found"> 

       <?php 
       if (current_user_can('edit_posts')) : 
        // Show a different message to a logged-in user who can add posts. 
        ?> 
        <header class="entry-header"> 
         <h1 class="entry-title"><?php _e('No posts to display', 'twentytwelve'); ?></h1> 
        </header> 

        <div class="entry-content"> 
         <p><?php printf(__('Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve'), admin_url('post-new.php')); ?></p> 
        </div><!-- .entry-content --> 

       <?php 
       else : 
        // Show the default message to everyone else. 
        ?> 
        <header class="entry-header"> 
         <h1 class="entry-title"><?php _e('Nothing Found', 'twentytwelve'); ?></h1> 
        </header> 

        <div class="entry-content"> 
         <p><?php _e('Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve'); ?></p> 
        <?php get_search_form(); ?> 
        </div><!-- .entry-content --> 
    <?php endif; // end current_user_can() check ?> 

      </article><!-- #post-0 --> 

<?php endif; // end have_posts() check ?> 

    </div><!-- #content --> 
</div><!-- #primary --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 
+0

Он работает! Благодарю. Кстати, как я могу адаптировать форматирование текста по умолчанию? – user3012847

+0

Вы можете использовать get_post_data() .. –

0

Необходимо показать сообщение с ID 23. Справа?

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

      <?php $the_query = new WP_Query('p=23') ?> 
      <?php while ($the_query->have_posts()) : ?> 
       <?php $the_query->the_post(); ?> 
       <?php the_title(); ?> 
       <?php the_content(); ?> 
      <?php endwhile; ?> 
      <?php wp_reset_postdata(); ?> 

     <?php else : ?> 
0

Вы немного не хватает, как это:

$query = new WP_Query('p=7'); 

чередовать вы можете попробовать query_posts() для конкретной должности в запрос выглядит следующим образом:

<?php query_posts('p=23'); ?> 
    <?php while (have_posts()) : the_post(); ?> 
     <h4><?php the_title(); ?></h4> 
     <?php the_content(); ?> 
    <?php endwhile;?> 
<?php get_footer(); ?> 
Смежные вопросы