2012-04-25 4 views
0

사용자가 링크를 클릭하면 현재 페이지에서 해당 페이지를로드하려고합니다. 이 아약스 페이지는 아약스가 아닌 페이지와 다르게 주제가되어야합니다.다른 템플릿을 사용하여 Wordpress에서 ajax를 통해 페이지로드

페이지가 클라이언트에 의해 다른 언어로 추가됩니다. 따라서 고정 된 ID가없고 클라이언트가 동일한 기사를 두 번 추가하면 안됩니다 (보통의 경우 1, 아약스의 경우 1). 이 규칙을 수동으로 템플릿을 덮어 씁니다.

콘텐츠의 첫 번째 부분 인 Ajax 로딩은 쉽지만 콘텐츠를 다른 방식으로 표시하는 방법을 알지 못합니다.

그래서

domain.com/product/car 직접 방문은 머리글과 바닥 글을 포함 템플릿으로 단일 product.php를 사용하여 제품 (자동차)를 보여줍니다.

ajax loading domain.com/product/car는 제품 (자동차)을 표시하지만 머리글과 바닥 글은없고 약간의 레이아웃 변경이있을 수 있습니다.

초기 생각에는 일부 템플릿이 동적으로 (template-product-ajax.php) 설정되지만 이것이 가능하거나 확실하지는 않습니다. 에서 아약스가있는 페이지를로드 할 때 내가 다른 템플릿/레이아웃 /보기를 만들 수있는 방법을 요약하면

, 워드 프레스

당신은 당신이 원하는 페이지/게시물 ID를 포함한 일련의 변수를 전달해야
+0

아래 답변을 검토하여 도움이되는지 또는 더 자세한 정보가 필요한지 알려주십시오. 작동 방식을 잘 알고 있다면 Answered로 표시하십시오. – maiorano84

답변

1

로드하려면 어떤 종류의 객체 ('page'또는 'post')와 표준 get_header() 함수가로드되지 않았는지 확인하기위한 부울 (페이지의 내용 만 필요하므로 헤더).

템플릿 내의 어딘가에 해당 부울을 사용하여 템플릿의 동작을 결정할 수 있습니다. 예를 들면 :

<?php 
/*Template Name: AJAX Content*/ 
if(!isset($_POST['bool'])) 
    get_header(); 
?> 
<div id="body"> 
    <div class="page_content"> 
    <?php 
     if(isset($_POST['bool'])) 
     { 
      $object = $_POST['ob_type'] == 'page' ? get_page($_POST['PID']) : get_post($_POST['PID']); 
      echo $object->post_content; 
      /*echo '<pre>';var_dump($object);echo '</pre>';//Uncomment this section if you want to know what you can access with variable $object*/ 
     { 
     else 
     { 
      //STANDARD LOOP 
     } 
    ?> 
    </div> 
</div> 

이 안된이지만, 당신이 이미 AJAX 호출에 익숙하고 별도의 페이지에 POST 데이터를 보내는 경우 시작하는 데 도움이됩니다.

관련 문제