我在Wordpress中创建了一个网站。
在我的front-page.php
和我的index.php
文件中,我输入了post和get方法,只是为了回显page-message.php
文件中的消息。
当我点击订阅按钮时,会显示帖子page:news
。帖子page:news
在我的Wordpress设置中定义:dashboard => settings => reading =>首页显示=>静态页面。
在page-message.php
我希望显示我从此表单输入的数据。 Ť
表单代码:
<h2>Sign to Newsletter</h2>
<form action="page-message.php" method="post">
Name:<input class="input" type="text" name="name" value=""/><br/>
Email:<input type="text" name="email" value=""/>
<br/><input class="submit" type="submit" value="Subscribe"/>
</form>
page-message.php的代码:
<?php
$name = $_POST["name"];
$email = $_POST["email"];
echo 'Congratulations!You have been successfully subscribed to our newsletter' .$name .$email;
?>
当我点击订阅按钮时,我的网址会更改为http://localhost/wordpress/page-message.php?name=stergios&email=something%40someone.com
。
使用post方法时,这似乎是正确的。问题是内容!
它总是加载新闻(来自settings =&gt;读取的帖子页面)而不是简单的回显消息?
当我在网址中写下我的网页之外的任何内容时,它总是显示帖子页面。例如,网址localhost/wordpress/hhhhhhhhhhh
(不存在的网页)确实加载了帖子页面,而不是邮件错误!
答案 0 :(得分:0)
我知道它不起作用的原因。
action="page-message.php"
你的静态页面的路径应该是/wp-content/themes/{themename}/page-message.php
你可以试试,
action="<?php echo get_template_directory(); ?>/page-message.php"
但我认为它不会起作用。你可以尝试
action="/index.php"
未经测试。让我知道它是否有用。
更新:当您将该页面设置为首页时,您的wordpress根网址将是该页面的网址(example.com或example.com/wpdirectory)。然后就这么做吧,
action="/"
或
action="/wpdirectory"
答案 1 :(得分:0)
如果“page-message.php”是主题中的自定义模板,您可以通过以下查询获取分配给它的页面ID:
$get_message_pageId = new WP_Query(array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'page-message.php'
));
然后您可以使用以下命令设置操作:
action="<?php echo esc_url( get_permalink( $get_message_pageId->posts[0]->ID ) ); ?>"
因此您在表单中始终会有正确的网址,但只有在您将此模板分配到的页面为
时才会有效