Volver a la página de plantilla HTML con función PHP

8

Quiero crear un formulario que pueda usar un código corto para insertarlo en mi sitio.

Sería muy bueno si pudiera crear la parte HTML en un archivo separado y luego insertarlo con un código corto de PHP (para separar la lógica de la página de la mecánica de convertirlo en un código corto).

¿Cómo podría hacer esto?

- Actualizar -

Esto es lo que he hecho: Tengo dos archivos. Uno llamado 'profiletemplate.php' y otro llamado 'scodes'. Ambos son parte de un complemento que estoy creando para mi sitio con un init.php que los inicializa. Aquí está su contenido:

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>

Luego uso el código corto [campo de prueba] en una página de mi sitio.

Actualización 2

Entonces este método está funcionando, pero no está insertando el HTML donde se llama el shortcode. En su lugar, solo se está insertando el contenido en la parte superior de la página (como si dijera 'echo' Pruebas '' en lugar de 'devolver' Pruebas '' en una función.

    
pregunta William 08.03.2013 - 14:07

2 respuestas

16

Algo que olvidé en mi comentario anterior fue que los códigos cortos devuelven el contenido, tanto el include sugerido como mi alternativa get_template_part emitirá directamente el contenido (que es lo que está viendo con el contenido que aparece en la parte superior de su página en lugar de donde se llama el código abreviado). Para contrarrestar esto, debemos utilizar almacenamiento en búfer de salida .

Defina el código abreviado en sus funciones.php (o las funciones específicas del sitio archivo).

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

Luego, en la carpeta de temas, necesita un archivo llamado my_form_template.php que se cargará en cualquier lugar donde coloque el código abreviado.

    
respondido por el helgatheviking 08.03.2013 - 16:12
2

Agregue lo siguiente a su 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' );

Archivo my_form_template.php :

<?php // Template for my form shortcode ?>
<form ...>
    FIELDS
</form>
    
respondido por el tfrommen 08.03.2013 - 14:18

Lea otras preguntas en las etiquetas