在Wordpress页面中读取POST数据

时间:2016-01-11 21:20:56

标签: php wordpress

我正在尝试为wordpress编写一个插件。我有一个问题,我无法解决。

在插件内部我添加了一个显示表单的短代码。

function showForm() {
    echo '<form method="post" action="www.example.com/myDestinationPage">';
    [...]
}

add_shortcode( 'ShowFormSC' , 'showForm' );

之后,在一个页面中,我添加了短代码,它完美无缺。 ; - )

现在问题是:如何在myDestinationPage(另一个wordpress页面)中读取POST数据?

在Php中会很简单......但是在wordpress中我不知道该怎么做。

第二个问题:myDestinationPage必须是一个真正的wordpress页面,里面有另一个短代码,或者可以在我的插件中定义为“虚拟”页面?

感谢您的帮助!

最诚挚的问候, 西蒙

2 个答案:

答案 0 :(得分:0)

第一个答案:你可以直接在wordpress中使用$ _POST,就像在php中一样。

第二个答案:是的,你可以。如果要在插件中使用页面,请使用plugins_url()生成表单操作的路径。

  

https://codex.wordpress.org/Function_Reference/plugins_url

答案 1 :(得分:0)

www.example.com/myDestinationPage需要进行编辑以接收帖子数据,就像在任何其他php脚本中一样,wordpress或不是。如果'myDestinationPage'解析为动态wordpress内容,那么你就处于泥泞的水域。

让我们说,myDestinationPage是一个wordpress Post。该“页面”不作为文件存在,它直接来自数据库。

你可以写一个处理这个问题的短代码:

add_shortcode('post_parser', 'postParser');
. . .
function postParser() {
  filter_input(INPUT_POST, 'my_post_value');
  //do something
}

然后,您只需将'[post_parser]'短代码添加到myDestinatioPage帖子中。 (你提到它是一个wordpress页面,但是page&amp; post都是WP_Post对象。)

另一种选择是将你的后期处理代码放在post.php中(或者myDestinationPage是哪个模板)。