Quero criar um formulário que possa usar um código curto para inserir no meu site.
Seria muito bom se eu pudesse criar a parte HTML em um arquivo separado e depois inseri-la com um código de acesso PHP (para separar a lógica da página da mecânica de transformá-la em um código de acesso).
Como eu pude fazer isso?
- Atualização -
Foi o que fiz: tenho dois arquivos. Um chamado 'profiletemplate.php' e outro chamado 'scodes'. Ambos fazem parte de um plugin que estou criando para o meu site com um init.php que os inicializa. Aqui está o conteúdo deles:
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>
Depois, uso o código de acesso [testfield] em uma página do meu site.
Atualização 2
Portanto, esse método está funcionando, mas não está inserindo o HTML onde o código de acesso é chamado. Em vez disso, basta inserir o conteúdo na parte superior da página (como se eu dissesse 'echo' Testing '' em vez de 'return' Testing '' em uma função.
functions.php
arquivo que exija / inclua esse arquivo e, por meio daadd_shortcode()
configuração do código de acesso desejado, para chamar sua função.Respostas:
Algo que esqueci no meu comentário anterior foi que os códigos de acesso retornam conteúdo, tanto a sugestão
include
quanto a minha alternativaget_template_part
produzirão diretamente o conteúdo (que é o que você está vendo com o conteúdo aparecendo na parte superior da página, em vez de onde o código de acesso é chamado). Para combater isso, devemos usar o buffer de saída .Defina o código abreviado no seu functions.php (ou no arquivo de funções específicas do site ).
Então, na sua pasta de temas, você precisa de um arquivo chamado,
my_form_template.php
que será carregado em qualquer lugar em que você colocar o código de acesso.fonte
Adicione o seguinte ao seu functions.php :
Arquivo my_form_template.php :
fonte
get_template_part()
dentro da sua função shortcode.