отображать сообщения блога на статической странице - PullRequest
0 голосов
/ 26 ноября 2011

Я довольно новичок в Wordpress и у меня есть вопрос. Я создал свою собственную тему, которая, кажется, работает нормально. Но у меня есть одна проблема. Я хочу создать свою страницу блога (со всеми сообщениями) на странице, отличной от моей домашней страницы. Итак, в папке моей темы я создал шаблон страницы с именем blog.php:

 <?php
  /*
  Template Name: blog  
  */
  ?>
  <?php get_header(); ?>

    <table id="about-table"  >
<tr>
    <td colspan="7">            
        <?php if (have_posts()) : while (have_posts()) : the_post();?>
            <?php the_title(); ?>
            <?php the_author(); ?>
            <?php the_time("jS F"); ?>
            <?php comments_number("0","1","%"); ?>
            <?php the_excerpt(); ?>
        <?php endwhile; endif; ?>
    </td>
</tr>
   </table> 
   <?php get_footer(); ?>   

Затем я создал страницу в WordPress под названием "блог", а также в разделе "страницы" на панели инструментов. Затем я назначил его шаблон вышеупомянутому шаблону блога. Проблема, однако, в том, что код не работает должным образом. Вместо того, чтобы показывать мне заголовки, комментарии и т. Д. Сообщений, он отображает другую информацию. С другой стороны, если я просто скопирую это:

   <table id="about-table"  >
<tr>
    <td colspan="7">            
        <?php if (have_posts()) : while (have_posts()) : the_post();?>
            <?php the_title(); ?>
            <?php the_author(); ?>
            <?php the_time("jS F"); ?>
            <?php comments_number("0","1","%"); ?>
            <?php the_excerpt(); ?>
        <?php endwhile; endif; ?>
    </td>
</tr>
   </table> 

к моей странице индекса, она работает нормально. Итак, как мне отобразить всю информацию о моем посте на странице, отличной от домашней страницы?

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Я хотел предоставить вам более простой цикл в качестве второго варианта. Если вы используете это и устанавливаете Настройки чтения для конкретной страницы блога, это работает хорошо:

<?

/*

Template Name: Blog Template Example

*/

?>

<?php get_header(); ?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
    <?php the_content(); ?>
</div>

<?php endwhile; ?>

<div class="navigation">
    <div class="next-posts"><?php next_posts_link(); ?></div>
    <div class="prev-posts"><?php previous_posts_link(); ?></div>
</div>

<?php else : ?>

<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <h1>Not Found</h1>
</div>

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

<?php get_footer(); ?>

Reading Settings

0 голосов
/ 26 ноября 2011

Как насчет того, чтобы сделать что-то вроде этого:

blog-template.php:

<?php/*
Template Name: Blog Page
*/
?>

<?php get_header(); ?>
<?php get_template_part( 'layout-page', 'blog' );?>
<?php get_footer(); ?>

layout-page-blog.php:

<?php 
the_post();
$title = get_the_title();
$baselink = get_permalink();
$category = get_field('category_blog'); 

if( !empty($category) ){
    $post_per_page = get_option('posts_per_page'); 
    $paged = (get_query_var('page')) ? get_query_var('page') : 1;

    $categoryID = get_category_id($category);

    $total = get_post_count(array($categoryID));

    $the_query = new WP_Query("posts_per_page={$post_per_page}&cat=    {$categoryID}&paged={$paged}");
?>

<div id="wrapper">
<div id="content">
    <h1 class="title"><?php echo $title; ?></h1>
    <div class="content-middle">
        <div class="node">              
            <?php while ( $the_query->have_posts() ) : $the_query->the_post();  ?>
            <h3><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="content">
                <?php echo content(150); ?>
            </div>
            <div class="read-more"><a href="<?php echo get_permalink(); ?>">Read more</a></div>                     
            <?php endwhile; ?>
            <br/><br/>
            <div class="wp-paginate">
            <?php 
                wp_reset_query();

                echo paginate_links( array(
                    'base' => $baselink.'%_%',
                    'total' => ceil($total/$post_per_page),
                    'current' => $paged,
                ));

                ?>
            </div>
        </div>
    </div>

</div> <!-- end content -->

<div style="clear:both"></div>
</div>

<?php
}
?>

Этовсе может быть в одном файле, или вы можете использовать его в двух частях, как я написал.

РЕДАКТИРОВАТЬ:

Извините, я установил, что он также позволяет получать изображения из поста.Я думаю, что это код функции, который вам нужен:

function get_images_by_cat($id){
    $limit = 1000;

    $the_query = new WP_Query("posts_per_page={$limit}&cat={$id}");
    $arr = array();
    while ( $the_query->have_posts() ) { 
        $the_query->the_post();

        $title = get_the_title();
        $image_src = get_field('banner_image');
        $image_link = get_field('banner_link');

        $arr[] = array(
            "title" => $title,
            "link" => $image_link,
            "image" => $image_src,
        );
    }

    wp_reset_query();

    return $arr;    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...