• Друг сделал скрипт, который по условию подгружает php файл с кодом вывода поста.
    К сожалению, код в шаблоне запись выводить не хочет, пустое место. В чем особенность при подгрузке php через js в темах wordpress?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Выложите код скрипта, а то сложно судить о проблеме.

    Друг сделал скрипт, который по условию подгружает php файл с кодом вывода поста.

    Задам глупый вопрос — чем не угодил стандартный способ постинга? Прямо текст (а не код) поста писать (вставлять) в редактор?.

    Одностраничный сайт с использованием ajax. Некоторые страницы подгружаются по клику. В файле index.php подключен следующий скрипт (код ниже). Есть кнопка урл которой вида «#!page1». По клику на кнопку в нужном месте файла index.php подгружается файл page.html. B подгружается успешно. Сейчас возникла у меня необходимость подгружать файл page.php вместо page.html, который содержит код вывода определенного поста из WP (код ниже):

    JS

    //* checking url
    window.onload = function()
    {
    	offsets['slide_3'] = $('#slide_3').offset();
    	offsets['slide_2'] = $('#slide_2').offset();
    
    	//* if user come from hashed link
    	if(window.location.hash!='')
    	{
    		var hash = window.location.hash.split('#').pop().replace(/\!/g, '');
    		//* link to slide
    		var hashInArray = $.inArray(hash, mainParams['slidesHashes']);
    		if(hashInArray>-1)
    		{
    			mainParams['currentSlide'] = hashInArray-1;
    			reColorLinks(false);
    		}
    		//* link to personal
    		hashInPersonalArray = $.inArray(hash, mainParams['personalHashes']);
    		if(hashInPersonalArray>-1)
    		{
    			$('html, body').scrollTop(offsets['slide_3'].top);
    			//* load personal
    			var loaded = 0;
    			for(var i=0; i<mainParams['personalHashes'].length;i++)
    			{
    				$('#sotr_'+(i+1)).load(mainParams['personalBasePath']+mainParams['personalHashes'][i]+'.'+mainParams['filesExtension']+' .wrap', {}, function()
    				{
    					loaded++;
    					if(loaded==mainParams['personalHashes'].length)
    					{
    						reCalcHeights();
    						slide32sep = $('#slide_3_2 .sep');
    						mainParams['personalLoaded'] = true;
    						mainParams['personalSlideIndex'] = hashInPersonalArray+1;
    						Cufon.replace('#slide_3_2 div.page-wrap h3, '+'#slide_3_2 h2.head-page-title', { fontFamily: 'Agl' });
    						$('body').addClass('noscroll');
    						mainParams['slideIndex'] = 3;
    						reColorLinks(false);
    						var offst2 = 0;
    						for(var k=1; k<=hashInPersonalArray;k++)
    						{
    							offst2 += parseInt($('#slide_3_2 #sotr_'+k).height());
    						}
    						$('#slide_3_2').scrollTop(offst2);
    						$('.mainSlide').css({marginLeft: '-100%'});
    						$('#slide_3_2').css({left: '0%'});
    					}
    				});
    				$('#sotr_'+(i+1)).attr('rel', mainParams['personalHashes'][i]);
    			}
    		}

    page.php

    <?php
    	$args = array(
    	'post_type' => 'services',
    	'p' => 149
    	);
    	$loop = new WP_Query( $args );
    	while ( $loop->have_posts() ) : $loop->the_post();
    ?>
    <div class="wrap">
    	<div class="wrap_inner">
    		<h2 class="head-page-title h-p-blue"><?php the_title();?></h2>
    		<div class="u-wrap">
    			<p><?php if ( !empty( $post->post_excerpt ) ) :
    					the_excerpt();
    				else :
    					false;
    				endif;?>
    			</p>
    		</div>
    		<?php the_content(); ?>
    	</div>
    </div>
    <?php endwhile; ?>

    index.php
    <li class="uslugi-list uslugi-l-6"><a href="#!page" class="onestring navToService" rel="6">Страница</a></li>

    Задам глупый вопрос — чем не угодил стандартный способ постинга? Прямо текст (а не код) поста писать (вставлять) в редактор?.

    В редактор в админке ВП вставляется текст, просто был создан специальный шаблон (код выше), который выводит нужный пост. Это было сделано в связи с особой архитектурой сайта (он на AJAX) и использованием пользовательских типов контента.

    Попробуйте в самом начале файла page.php прописать

    header('Content-Type: text/html; charset=utf-8');
    require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

    Вы нереально крут. Спасибо, помогло 🙂

    С уважением, Максим.

    Всегда пожалуйста.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Погрузка php файла из шаблона через javascript» закрыта для новых ответов.