2016-01-08 4 views
-1

Я пытаюсь создать собственную тему и загрузить ее в Wordpress, но мой файл single.php не работает вообще. Он просто показывает пустую страницу. Я пробовал так много вещей, чтобы заставить его работать, но теперь я не знаю, что делать дальше. Это мой PHP-файл для страницы блога:Single.php show blank page

<?php 
 
/** 
 
*Template Name: Blog Posts 
 
*/ 
 
get_header('header4'); ?> 
 

 
<section id="headerbox"> 
 
\t \t \t \t \t <header> 
 
\t \t \t \t \t \t <h2 class="referensrubrik">Nyheter</h2> 
 
\t \t \t \t \t </header> 
 
\t \t \t \t \t \t <p class="referenstext">Det senaste från AL Konsult.</p> 
 
\t \t \t \t </section> 
 

 
<main id="blog"> 
 
\t \t <?php // Display blog posts on any page @ http://m0n.co/l 
 
\t \t $temp = $wp_query; $wp_query= null; 
 
\t \t $wp_query = new WP_Query(); $wp_query->query('showposts=5' . '&paged='.$paged); 
 
\t \t while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 
 
\t \t 
 
\t \t <article id="blogpost" id="post-<?php get_the_ID(); ?>" <?php post_class(); ?>> 
 

 
\t \t <h2><a href="<?php the_permalink(); ?>" title="Läs mer" class="blogpost"><?php the_title(); ?></a></h2> 
 
\t \t <h5><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></h5> 
 
\t \t <?php the_excerpt(); ?> 
 
\t \t <hr> 
 
\t \t </article> 
 

 
\t \t <?php endwhile; ?> 
 

 
\t \t <?php if ($paged > 1) { ?> 
 

 
\t \t <nav id="nav-posts"> 
 
\t \t \t <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div> 
 
\t \t \t <div class="next"><?php previous_posts_link('Newer Posts &raquo;'); ?></div> 
 
\t \t </nav> 
 

 
\t \t <?php } else { ?> 
 

 
\t \t <nav id="nav-posts"> 
 
\t \t \t <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div> 
 
\t \t </nav> 
 

 
\t \t <?php } ?> 
 

 
\t \t <?php wp_reset_postdata(); ?> 
 

 
</main> 
 

 
<?php get_footer(); ?> 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t

Теперь мой single.php выглядит так (я пробовал цикл, но это просто не работает ...) :

<?php 
 
/** 
 
* The Template for displaying all single posts. 
 
*/ 
 
get_header('header3'); ?> 
 

 
<section id="headerbox"> 
 
\t <header> 
 
\t <h2 class="referensrubrik">Rubrik</h2> 
 
\t </header> 
 
\t <p class="referenstext">Text</p> 
 
</section> 
 

 
<?php 
 
error_reporting(-1); 
 
?> 
 

 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
 
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
 

 
    <h1 class="entry-title"><?php the_title(); ?></h1> 
 

 
    <div class="entry-content"> 
 
    
 
     <?php the_content(); ?> 
 
    
 
    </div> 
 
</article> 
 

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

Что я делаю не так !?

+1

включить отчеты об ошибках: http://stackoverflow.com/questions/6575482/how-do-i-enable-error -reporting-in-php – Gordon

+1

Посмотрите на ['error_reporting (E_ALL);'] (http://php.net/manual/en/function.error-reporting.php) и ['ini_set ('display_errors' , 1); '] (http://php.net/manual/en/function.in-set.php), у вас где-то есть синтаксическая ошибка. – Qirel

+0

Прежде всего, вы не должны называть wp-load вручную. – moorscode

ответ

0

Я установил ее! Код single.php, который работает для меня выглядит следующим образом:

<?php 
 
/** 
 
* The Template for displaying all single posts. 
 
*/ 
 
get_header('header3'); ?> 
 

 
<section id="headerbox"> 
 
\t \t \t \t \t <header> 
 
\t \t \t \t \t \t <h2 class="referensrubrik">Rubrik</h2> 
 
\t \t \t \t \t </header> 
 
\t \t \t \t \t \t <p class="referenstext">Text</p> 
 
\t \t \t \t </section> 
 
\t \t \t 
 
<?php 
 
\t \t $post = $wp_query->post; 
 
\t \t while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 
 
\t \t 
 
\t \t <article id="blogpost" id="post-<?php get_the_ID(); ?>" <?php post_class(); ?>> 
 

 
\t \t <h2><a href="<?php the_permalink(); ?>" title="Läs mer" class="blogpost"><?php the_title(); ?></a></h2> 
 
\t \t <h5><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></h5> 
 
\t \t <?php the_content(); ?> 
 
\t \t <hr> 
 
\t \t </article> 
 

 
\t \t <?php endwhile; ?> 
 

 
\t \t <?php if ($paged > 1) { ?> 
 

 
\t \t <nav id="nav-posts"> 
 
\t \t \t <div class="prev"><?php next_posts_link('&laquo; Äldre inlägg'); ?></div> 
 
\t \t \t <div class="next"><?php previous_posts_link('Nyare inlägg &raquo;'); ?></div> 
 
\t \t </nav> 
 

 
\t \t <?php } else { ?> 
 

 
\t \t <nav id="nav-posts"> 
 
\t \t \t <div class="prev"><?php next_posts_link('&laquo; Äldre inlägg'); ?></div> 
 
\t \t </nav> 
 

 
\t \t <?php } ?> 
 

 
\t \t <?php wp_reset_postdata(); ?> \t \t \t 
 
    
 
<?php get_footer(); ?>

0

Ваш тег шаблона находится за пределами блока.

<!-- /* 
Template Name: Blog Posts 
*/ --> 

<?php 

Оно должно быть:

<?php 
/* 
Template Name: Blog Posts 
*/ 
0

Убедитесь, что нет пробелов или возврат каретки за пределами тегов (особенно в шаблонах WP страниц): Пробелы/возврат каретки приведет страницу не рендеринг, вызывая исключение (которое вы, скорее всего, не видите, потому что у вас нет отчетов).

В частности, я имею в виду это:

<!-- /* 
Template Name: Blog Posts 
*/ --> 

Он должен быть внутри тега открытия PHP, и не должно быть никаких пустых строк в верхней части страницы.

Это должно выглядеть (без пустых разрывов строк):

<?php 
/** 
* The Template for displaying all single posts. 
*/ 
require_once('../../../wp-load.php'); 
get_header('header3'); ?> 
0

Удалить следующую строку из кода:

require_once('../../../wp-load.php');