Quiero crear un formulario que pueda usar un shortcode para insertar en mi sitio.
Sería realmente bueno si pudiera crear la parte HTML en un archivo separado y luego insertarlo con un código corto PHP (para separar la lógica de la página de la mecánica de convertirla en un código corto).
¿Cómo podría hacer esto?
- Actualización -
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 haciendo 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 shortcode [testfield] 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 cambio, solo está insertando el contenido en la parte superior de la página (como si dijera 'echo' Testing '' en lugar de 'return' Testing '' en una función.
functions.php
archivo que requiera / incluya este cierto archivo, y mediante laadd_shortcode()
configuración de su shortcode deseado para llamar a su función.Respuestas:
Algo que olvidé en mi comentario anterior fue que los códigos abreviados devuelven contenido, tanto la sugerencia
include
como mi alternativaget_template_part
generarán 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 usar el búfer de salida .Defina el código abreviado en su functions.php (o el archivo de funciones específicas de su sitio ).
Luego, en su carpeta de temas, necesita un archivo llamado
my_form_template.php
que se cargará en cualquier lugar donde coloque el shortcode.fuente
Agregue lo siguiente a su functions.php :
Archivo my_form_template.php :
fuente
get_template_part()
dentro de su función de shortcode.