Intereting Posts

Проблема Get_template_part () с the_content ()

Я создаю одну страницу WordPress темы – я новичок в WordPress Dev. На одной странице сайта есть разделы, которые представляют страницы. Поэтому каждый раздел на главной странице – это страница, созданная с помощью панели администратора.

Существует page.php и page-home.

Передняя страница должна отображать все страницы в виде разделов.

Поэтому я начал с цикла внутри front-page.php:

<?php get_header(); ?> <?php $query = new WP_Query('pagename=home'); if ( $query->have_posts () ) : while ( $query->have_posts() ) : $query->the_post(); get_template_part("page-home"); endwhile; endif; wp_reset_postdata(); ?> <?php get_footer(); ?> 

Первая проблема: get_template_part не отображает the_content () из page-home.php, только отображает разметку html.


Вот страница-home.php

 <?php /* Template Name: Home */ ?> <?php get_header(); ?> <section id="first_section"> <img class="jumbo wow bounceInDown animated" data-wow-delay="2s" src="<?php echo get_template_directory_uri(); ?>/images/jumbo-illustration.png" alt="Webdesigner and Developer" /> <div class="tagline-wrapper wow bounceInLeft animated" data-wow-delay="2.5s"> <!-- IF the_content() is placed here, it displays the content on front-page --> <h3 class="tagline"><?php the_content(); ?></h3> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h3 class="tagline"><?php the_content(); ?></h3> <?php endwhile; ?> </div> <?php else : ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?> </section> <?php get_footer(); ?> 

Обратите внимание на <h3 class="tagline"><?php the_content(); ?></h3> <h3 class="tagline"><?php the_content(); ?></h3> главной странице не будет отображаться объект__контента, если он находится в цикле, но если он до цикла, он отображает normaly.

Что мне не хватает?

Tnx заранее

Solutions Collecting From Web of "Проблема Get_template_part () с the_content ()"

Проблема в том, что вы запускаете цикл из вторичного запроса в front-page.php и цикл из main в page-home.php. Таким образом, данные post в page-home.php не будут данными из WP_Query в front-page.php.

Кроме того, вы пытаетесь получить полные файлы шаблонов в качестве частей шаблона, что неверно. Я имею в виду, что front-page.php – это полный шаблон, который будет содержать заголовок, содержание и нижний колонтитул, а также page-fome.php также полный шаблон с заголовком, контентом и нижним колонтитулом. Вы должны передумать логику разделения частей шаблона.

Основной (и глупый) пример, чтобы показать вам правильный подход:

передний page.php:

 <?php get_header(); ?> <?php $query = new WP_Query('pagename=home'); if ( $query->have_posts () ) : while ( $query->have_posts() ) : $query->the_post(); get_template_part("content"); endwhile; endif; wp_reset_postdata(); ?> <?php get_footer(); ?> 

страница-home.php:

 <?php /* Template Name: Home */ ?> <?php get_header(); ?> <section id="first_section"> <img class="jumbo wow bounceInDown animated" data-wow-delay="2s" src="<?php echo get_template_directory_uri(); ?>/images/jumbo-illustration.png" alt="Webdesigner and Developer" /> <div class="tagline-wrapper wow bounceInLeft animated" data-wow-delay="2.5s"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> get_template_part("content"); <?php endwhile; ?> </div> <?php else : ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?> </section> <?php get_footer(); ?> 

content.php:

 <h3 class="tagline"><?php the_content(); ?></h3>