【发布时间】:2017-07-23 12:51:44
【问题描述】:
我在将表单数据发布到同一页面以在 Wordpress 中进行处理时遇到问题。 我创建了一个名为 [lwCSForm] 的简码,它可以工作并在其添加到的页面上吐出表单。问题是当我按下提交时,页面不会注意到 $_POST['submit'] 变量并且我的代码无法处理数据。
我已测试以下列形式使用这些操作:
action="php echo $_SERVER['PHP_SELF']"(我无法让php标签在这里工作)action="php echo $post->post_title"(我无法让php标签在这里工作)甚至直接写页面名:
action="about"
这是在页面上通过简码显示表单的功能:
function DisplayCustomSettingsForm_shortcode() {
global $post;
if( !is_user_logged_in() ){
echo '<div class="lwCSForm-notloggedin">
<p> Please login to view the content! </p>
</div>';
return;
}
if( isset( $_POST['submit'] ) )
{
echo "The submit button is pressed and has data";
/* Code to update customers settings, like avatar, email, username */
} else {
$phpself = $post->post_title; // get the current page
?><br />
<!-- LwCSForm Plugin-->
<section id="lwCSForm-wrapper">
<form name="lwCSForm" id="lwCSForm" method="post" action="<?php $phpself ?>" autocomplete="on">
Name: <input type="text" name="realname" placeholder="Your Name" >
Sitename: <input type="text" name="username" placeholder="Username" >
E-mail: <input type="text" name="email" placeholder="E-mail" >
Avatar: <input type="text" name="avatar" placeholder="Avatar" >
<input type="submit" >
</form>
</section>
<!-- END LwCSForm Plugin-->
<br /> <?php
}
}
add_shortcode( 'lwCSForm', 'DisplayCustomSettingsForm_shortcode');
带有简码的添加表单的图片
为什么 wordpress 不处理这些信息?并再次声明。我无法在此处打印 php 标签,但它们在源代码中。
【问题讨论】:
-
您的简码实现不正确。根据the documentation“请注意,短代码调用的函数应该永远产生任何类型的输出。短代码函数应该返回用于替换短代码的文本。”
-
你找到解决办法了吗。我也卡在这里了。看起来手动创建的页面不像我们写的 .php 页面那样执行?