2009-06-10 5 views
2

나는 일반적으로 웹 사이트의 여러 위치에서 페이지의 정확한 사본을 원하는 "힘"이있는 시나리오를 실행합니다. 실제로 콘텐츠를 복제하는 대신 강조 표시된 탐색 섹션을 재정의 한 다음 페이지를 포함시킵니다. 마지막 페이지는 다음과 같습니다.블로그를 포함 할 수없는 이유는 무엇입니까?

<?php 
    $top_nav_item_id = 'teen'; 
    include('../interests/teacher-resources.php'); 
?> 

일반적으로 작동합니다. 나는 wordpress에서 한 blog 카테고리에 이것을 복제하려고 노력하고있다. 나가 얻는 것처럼 보이는 모두는 나가해도, 빈 페이지이다. 다음 줄을 모두 시도했습니다.

<?php 
    include('../blog/index.php'); 
    include('../blog/type/teen/index.php'); 
    include('../blog/type/teen/'); 
    include('../blog/'); 
?> 

아무도 아이디어가 있습니까? 이 URL을 다시 작성하는 것입니까? 특정 카테고리에 대한 템플릿 파일을 포함해야합니까?

도움을 주시면 감사하겠습니다.

+1

일부 아파치 재 작성 마법을 사용하면 더 나아지지 않을 것이라고 확신합니까? –

답변

0

이 솔루션은 약간의 해킹이지만 문제는 약간의 해킹입니다.

내가 블로그 페이지를 포함 할 수없는 이유에 대한 좋은 설명을 받았지만 나를 대신 할만한 대안은 없었습니다.

최종 해결책은 해당 페이지의 카테고리 템플릿을 직접 수정하는 것입니다. 원래 언급했듯이 $ top_nav_item_id를 사용하여 탐색에서 강조 표시된 메뉴 항목을 제어하여 해당 섹션에 속한 페이지의 모양을 제공합니다. 이것을 오버라이드하기보다는 단순히 쿼리 문자열에서 조건부로 만들었습니다. 사용자가 내 사이트의 적법한 링크를 따르는 한 올바른 쿼리 문자열을 얻을 수 있으며 아무 문제가 없습니다.

$ _POST는 Wordpress에서 사용할 수 없습니다. $ query_string (WP에 내장)은 일종의 캐싱을 사용하며 처음로드 될 때 항상 표시됩니다.

최종 솔루션 :하기 위해 노력하는 모든 사람에

if(strtolower($_SERVER['QUERY_STRING'])=='display=teen') { 
    $top_nav_item_id = 'teen'; 
} else { 
    $top_nav_item_id = 'programs'; 
} 

감사합니다.

2

이것은 매우 복잡한 주제이며 처음부터별로 분명하지 않은 주제입니다. This 페이지를 참조하십시오. 핵심은 WordPress 블로그 헤더를 포함하는 것입니다 - 링크 된 페이지에 설명되어 있습니다. 또한 WordPress 엔진 API 사용에 대한 리소스는 WordPress Codex을 확인하시기 바랍니다.

6

PHP include은 URL이 아닌 파일을 필요로하므로 WordPress에서 공개하는 URL 네임 스페이스에 액세스 할 수 없습니다. 이러한 파일은 디스크 상에 존재하지 않습니다. mod_rewrite는 먼저 pretty URL을 index.php의 내부 요청으로 바꾸고 WordPress는 원래 URL을 기반으로 실제로 원하는 것을 파악하고 데이터베이스에서 여러 가지 항목을 가져온 다음 페이지를 생성합니다.

0
ini_set('display_errors', true); 
error_reporting(E_ALL); 

무엇이 잘못 됐는지는 알 수 없습니다. 어쩌면 Wordpress는 환경을 찾지 못했을 것입니다. 어쩌면 일부 변수가 무시되고 있습니다 ... 사실, Wordpress와 같은 솔루션을 포함시키는 것은 나쁜 생각입니다. 여러분은 결코 알지 못하기 때문에, 전역 변수, 함수, 클래스가 교차 할 것입니다.

추신 : 그렇지만, include는 파일 시스템 경로를 사용하지만 URL은 사용하지 않습니다.

0

비슷한 문제로 iframe을 사용하여 콘텐츠 사본을 포함합니다. 원본 페이지를 작성하여 URL에 "? embed = 1"플래그를 찾고 embed 플래그가있는 경우에만 기본 페이지에 포함 할 수있는 내용을 포함 할 수 있습니다 (따라서 중복되는 도구 모음과 프레임을 생략 할 수 있습니다).) 그래서 iframe src url은? embed = 1 태그를 사용하여 내용을 포함합니다.

관련 문제