@memphistofil
Губы в трубочку, нить в иголочку

Как исправить ошибку переключения шаблона в Wordpress?

Сразу скажу, что с вордпрессом никогда до этого не работал.
В чем суть. Достался мне работающий сайт на вордпрессе. Решил поднять его у себя на компе через вагрант. Скопировал с хостинга, настроил вагрант. При заходе на сайт белая страница. После долгого гугления удалось запустить сайт путем смены шаблона в wp_options. Пытаюсь через админку поменять шаблон на тот который на боевом сервере работает. Выдает следующую ошибку:
Parse error: syntax error, unexpected 'endwhile' (T_ENDWHILE), 
expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF) 
in /var/www/test.local/wp-content/themes/yod/functions.php on line 943

Вот полный код функции в которой ошибка возникает:
Спойлер
function true_load_sidebar(){
	$offset=intval($_POST['offset']);
	$cat_id=intval($_POST['cat_id']);
	$news_per_page=intval($_POST['news_per_page']);
	?>
    <div class="row small-p" style="margin-top: 3em;">
	<?php
		$args_news = array(
			'cat' => $cat_id,
			'orderby' => 'date',
			'order' => 'DESC',
			'posts_per_page' => $news_per_page,
			'offset' => $offset,
		);
		if(defined("WP_BASE_SITE_URL")){
			$args_news['meta_query'][] = array(
				'relation' => 'OR',// пишем условия в meta_query
				array(
					'key' => 'region_news', // название произвольного поля
					'value' => WP_SITE_REGION, // переданное значение произвольного поля
					'compare' => 'LIKE'
				),
				array( 
					'key' => 'region_news', // название произвольного поля
					'value' => "rus", // переданное значение произвольного поля
					'compare' => 'LIKE'
				),
			);	
		}else{
			$args_news['meta_query'][] = array(
				'key' => 'region_news', // название произвольного поля
				'value' => "rus", // переданное значение произвольного поля
				'compare' => 'LIKE'
			);	
		}
		$loop_news = new WP_Query($args_news);
		global $exist_hashtags,$hashtags_max_count;
		?>
		<?php if ( $loop_news->have_posts() ) :?>
			<?php while ( $loop_news->have_posts() ) : $loop_news->the_post();
					$hashtags=get_the_tags();
					$hashtags_post="";
			?>
				<div class="col-xs-12 col-sm-5 col-md-12">
					<article class="post <?= (strtotime (date("m/d/Y", time()).' -2 day') < strtotime (get_the_date('d.m.Y H:i', get_the_ID()))) ? get_post_meta(get_the_ID(), 'post_lightning')[0][0] : '';?> post_sidebar">
						<a href="<?php the_permalink() ?>"></a>
						<?php
								if(!empty($hashtags_post))
									echo '<div class="hashtags">'.$hashtags_post.'</div>';
						?>
						<div class="post__img">
							<?php
							$lentochka=get_post_meta(get_the_ID(), 'lentochka');
							$img_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'main-slider')[0];
							?>
							<img src="<?php echo $img_src; ?>" alt="">
							<?php
							if(!empty($img_src) && isset($lentochka[0]) && !empty($lentochka[0]) && $lentochka[0]!="no"):?>
								<div class="icon_lentochka <?=get_post_meta(get_the_ID(), 'lentochka')[0]?>_icon"></div>	
							<?endif;?>
						</div>
						<div class="post__title">
							<?php the_title(); ?>
						</div>
						<div class="post__date">
							<?=rdate(get_option('date_format')." ".get_option('time_format'), strtotime(get_post_time("Y-m-d G:i", false, get_the_ID(), false)));?>
						</div>
					</article>
				</div>
			<?php
            endwhile ;?>
		<?php endif; wp_reset_query(); ?>
	</div>
	<?php
    die();
}


Не понятно что не так(ну то есть понятно, что не ожидается endwhile, но вроде там все закрывается?), почему на бою это работает и как это исправить.
Еще раз повторюсь, что с вордпрессом до этого не приходилось работать, возможно при ручном переносе нужно было что то сделать дополнительно.
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ответы на вопрос 2
dimasmagadan
@dimasmagadan
надо следовать стандартам и не использовать <?=
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Если на боевом сайте все работает, то можно предположить, что у вас более новая версия рнр и соответственно ошибка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы