PHP 함수로 HTML 템플릿 페이지 반환


10

짧은 코드를 사용하여 내 사이트에 삽입 할 수있는 양식을 만들고 싶습니다.

별도의 파일로 HTML 부분을 만든 다음 PHP 짧은 코드로 삽입하여 페이지의 논리를 짧은 코드로 만드는 메커니즘과 분리하면 정말 좋을 것입니다.

어떻게해야합니까?

-업데이트-

이것이 내가 한 일입니다. 두 개의 파일이 있습니다. 하나는 'profiletemplate.php'이고 다른 하나는 'scodes'입니다. 그것들은 모두 초기화하는 init.php로 내 사이트를 위해 만드는 플러그인의 일부입니다. 내용은 다음과 같습니다.

init.php

<?php
require_once(dirname(__FILE__).'/pages/scodes.php');
?>

scodes.php

function jf_testcode() {
    include dirname(__FILE__) . 'profiletemplate.php';
}

add_shortcode('testfield', 'jf_testcode');

profiletemplate.php

<?php // Template for my form shortcode ?>
<form>
Testing
</form>

그런 다음 내 사이트의 페이지에서 [testfield] 단축 코드를 사용합니다.

업데이트 2

따라서이 방법은 작동하지만 짧은 코드가 호출되는 HTML을 삽입하지 않습니다. 대신 페이지 상단에 내용을 삽입하는 것입니다 (함수에서 'return'Testing '대신'echo 'Testing'이라고 말한 것처럼).


우선, PHP 파일에 일반 HTML을 작성할 수 있습니다. 그런 다음 functions.php이 특정 파일이 필요하거나 포함 된 함수를 작성하고 add_shortcode()원하는 단축 코드를 설정하여 함수를 호출해야합니다.
tfrommen

답변:


24

이전 의견에서 잊어 버린 것은 단축 코드가 콘텐츠를 반환 한다는 것입니다 . 제안 된 include대안과 대안 get_template_part이 콘텐츠를 직접 출력합니다 (짧은 코드가 호출되는 대신 페이지 상단에 콘텐츠가 표시되는 내용). 이를 방지하기 위해 출력 버퍼링 을 사용해야합니다 .

당신의 functions.php (또는 사이트의 단축 코드를 정의 사이트의 특정 기능의 파일).

function my_form_shortcode() {
    ob_start();
    get_template_part('my_form_template');
    return ob_get_clean();   
} 
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

그런 다음 테마 폴더 my_form_template.php에 단축 코드를 넣은 곳에로드 할 파일이 필요합니다 .


완전한! 이것은 훌륭하게 작동합니다!
William

플러그인 내에서 동일한 작업을 수행하려면 include를 사용해야합니다. 참조 wordpress.stackexchange.com/a/124794/75817
patrics

와우 ... 내 day..awesome 코드 저장
dipak_pusti

2

functions.php에 다음을 추가하십시오 .

function my_form_shortcode() {
    include dirname( __FILE__ ) . 'my_form_template.php';
} // function my_form_shortcode
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );

파일 my_form_template.php :

<?php // Template for my form shortcode ?>
<form ...>
    FIELDS
</form>

1
get_template_part()단축 코드 함수 안에서도 사용할 수 있습니다 .
helgatheviking

@tf의 솔루션 구현을 시도했습니다
William

@helgatheviking-그 기능은 어떻게 작동합니까?
William

get_template_part () 에 대한 설명은 코덱을 참조하고 단축 코드와 함께 사용하는 방법에 대한 내 대답을 참조하십시오.
helgatheviking
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.