Crie uma página para manipular o envio de formulários

4

Atualmente, tenho algumas "lojas" de tipos de postagens personalizadas (na verdade, mais como páginas do que postagens) e "produtos" de taxonomia personalizados vinculadas a esses tipos de postagens.

Estou tentando criar um formulário (via shortcode) que permite ao usuário selecionar um (ou potencialmente mais no futuro) produtos que, quando submetidos, exibem uma página listando lojas (título e outro post meta) relacionadas à produto (s) escolhido (s).

Eu tenho o formulário, mas não sei qual é a melhor maneira de lidar com a submissão e a subseqüente página de exibição.

Eu observei a página do códice para add_rewrite_endpoint () states

  

Isso pode ser usado para todos os tipos de coisas:

     
  • manipulador de ajax
  •   
  • manipulador de envio de formulários
  •   
  • manipulador de notificação alternativa
  •   

no entanto, não há mais informações sobre como conseguir isso.

Quaisquer sugestões sobre como lidar com envios de formulários seriam ótimas. Obrigado.

Editar : além disso, desejo que a página de envio de formulário seja redirecionada para uma URL legal representando o termo selecionado. Por exemplo

  1. O usuário seleciona o produto "livros", os hits enviam
  2. Formulários enviados para o tratamento de URL ou algum tipo de gancho captura o envio
  3. O navegador é redirecionado para "lojas / livros"
  4. Algo exibe as páginas "loja" marcadas com produtos "livros"

Minha pergunta pode ser dividida em ...

  1. Qual URL eu uso no atributo action do formulário? Isso é mesmo necessário?
  2. Onde posso lidar com o envio do formulário? Eu crio um arquivo específico ou posso registrar algum tipo de gancho de ação? Lembre-se de que estou querendo enviar um cabeçalho Location para redirecionar para outro URL. Isso precisa ser feito antes de qualquer saída enviada ao navegador.
  3. Como configuro algo para aceitar a solicitação "shops /% product%" e mostrar os resultados de acordo

Desculpe pela consulta prolixa, mas estou com dificuldades para entender a API e a documentação do Wordpress.

    
por Phil Brown 29.11.2010 / 05:44

1 resposta

4

Isso é realmente muito fácil (pelo menos # 1 e # 2 são):

  1. Você pode usar qualquer URL que carregue um arquivo de modelo de tema. Por exemplo, você poderia criar uma Página "do WordPress e em sua Page Template você pode usar a matriz $_POST do PHP para capturar seus valores <form> .

  2. A menos que você tenha um bom motivo, você realmente não precisa fazer um redirecionamento. Você pode, mas eu não vejo que você precisa e isso apenas torna sua tarefa mais complicada. Se você realmente quiser < strong> this answer mostrará como.

  3. Estou confuso com o que você está tentando realizar com sua URL " shops/%product% ". À primeira vista, sua escolha de "lojas" para um tipo de postagem personalizado e "produtos" para uma taxonomia parece errada para mim (a menos que você esteja tentando representar muitos diferentes lojas, ou seja, se o seu site está tentando ser um mercado para muitos comerciantes diferentes. É esse o caso? Mesmo assim, ainda não vejo por que você usaria uma taxonomia para seus produtos.) me parece que você gostaria de criar um tipo de postagem personalizado "Produto" (embora eu não tenha certeza sobre a taxonomia) , e então você terá URLs do tipo products/%product% quando você registra seu tipo de postagem personalizado. Ou talvez eu entenda mal o que você está tentando fazer para o # 3?

por MikeSchinkel 29.11.2010 / 08:21