2011-04-28 3 views
40

에, 나는 필요한 것은 그것을 인쇄, 내 워드 프레스이워드 프레스 : 저장 'get_template_part()`짧은에서 변수

$var = get_template_part('loop', 'index'); 

하지만, get_template_part()는 HTML을 반환하지 않습니다 할 수 있도록하는 것입니다.
이 HTML이 $var에 저장되어 있어야합니다. 어떻게 할 수 있습니까?

get_template_part가 무엇인지되지 않습니다
+0

나중에 인쇄 할 것인가? 나는'$ var'을 의미합니다. – ewroman

답변

63

는 get_template_part는 기본적으로 PHP의 필요 기능처럼 동작합니다. Justin Tadlock writes a lot more about this here 그리고 당신에게 더 유용 할지도 모르는 Wordpress 함수에 대해서도 말하고 있습니다 - locate_template.

function load_template_part($template_name, $part_name=null) { 
    ob_start(); 
    get_template_part($template_name, $part_name); 
    $var = ob_get_contents(); 
    ob_end_clean(); 
    return $var; 
} 
+0

내가 이것을 내 주제에 넣었을 때 파일의 내용이 아닌 베이컨 만 얻는다 .... : echo "bacon". load_template_part ('registration-form.php'); – helgatheviking

+0

Atomicus가 문자 그대로 처리되지 않은 PHP를 원한다고 말하는 곳이 어디인지 모르겠습니다. get_template_part는 파일 내용물 가져 오기 도구가 아니라 포함 기능을합니다. –

+1

는 당신이이 말이 맞다는 말을 다시 말해야합니다. 나는 함수에 잘못된 정보를 제공하고 있습니다 (.php 추가). 내가 기본적으로 $ part_name = NULL을 설정합니다하지만 당신은 단지라고 할 수 있습니다 load_template_part는 ('내용 곁에') – helgatheviking

4

대해 : 당신이 get_template_part를 사용하여이 기능을 해킹 할 않은 경우

또는, 당신은 템플릿 버퍼링을 사용할 수 있을까?

$file = file_get_contents(STYLESHEETPATH . '/template-part.php'); 
return $file; 

나는 더 나은 방법이있을 것이라고 확신하지만 저에게는 효과가있는 것 같습니다.

12

나는 심지어 옵션으로 그 생각에 대한 +1 불구하고, 출력 버퍼링을 사랑하고 있지 않다!

나는 헬가가 뭔가에 생각,하지만 당신은 여전히 ​​(사이먼 제안도로) 대신)을 child_themes 및 테마 경로를 존중하고, 그래서 locate_template을 (사용해야합니다.

이 기능은 필터 또는 (내 경우에는) 단축 코드 기능 내에서 사용할 수 있습니다 (내 단축 코드가 템플릿 스타일 파일 내에서 콘텐츠를 출력하고 논리 레이어에서 표시 레이어를 분리하기를 원했습니다) .

return file_get_contents(locate_template("template-file-name.php")); // don't forget the .php! 
+2

나는 그것을 시도했지만, 템플릿 페이지를 실행하지 못했고, 그것을 실행하고 출력 문자열을 반환하는 방법이 있습니까? – Ayyash

+0

@ SimonScarfe의 대답에 따라 출력 버퍼링을 사용해야합니다. –

+0

파일을 읽지 만 실행하지는 않습니다. – Codebeat