2011-04-25 50 views
3

我在Wordpress頁面中使用exec-php插件創建了一個聯繫表單,並使用val來運行代碼。但是,Wordpress重寫系統似乎會覆蓋發送到頁面的發佈表單數據。有什麼方法可以確保這些數據通過?所有我在我的,htaccess是標準的WP重寫塊。你能從Wordpress頁面訪問POST變量嗎?

回答

6

是的,你可以訪問Wordpress頁面中的forrm POST變量。

我創建了一個頁面模板是這樣的:

<?php 
/* 
Template Name: Page with Form 
*/ 
?> 

<?php get_header(); ?> 
<div id="content" class="widecolumn"> 
<?php 
var_dump($_POST); 

if (have_posts()) : while (have_posts()) : the_post();?> 
<div class="post"> 
    <h2 id="post-<?php the_ID(); ?>"><?php the_title();?></h2> 
    <div class="entrytext"> 
    <?php the_content('<p class="serif">Read the rest of this page &raquo;</p>');?> 
    </div> 
</div> 
<?php endwhile; endif; ?> 
<?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?> 
</div> 
<form id="test" method="post"> 
    <input id="srchbox" name="term" size="28" value="" type="text">&nbsp; 
    <input name="submit" value="Submit" align="absmiddle" type="submit"> 
</form> 
<?php get_footer(); ?> 

然後,我通過WordPress管理面板中創建一個頁面,上面的頁面模板使用。

你可以看到我在這個頁面模板中有一個樣本表單「測試」。現在,當我在我的瀏覽器訪問新創建的頁面,進入形式一些文本並提交我得到這個爲var_dump($_POST);線形式:

array(2) { 
    ["term"]=>string(7) "foo-bar" 
    ["submit"]=>string(6) "Submit" 
} 

正如你所看到的WordPress不會中斷任何東西,你的頁面有充分訪問您的$_POST陣列的表單POST變量。

+0

您是將頁面重寫爲規範URL還是僅使用index.pphp?page = [ID]? – MarathonStudios 2011-04-25 03:37:36

+0

我沒有在URL中使用頁面標識,我使用的是固定鏈接結構:'/ site /%postname%'。所以我的URL永遠不會有'?p = 123'類型的QUERY_STRING。 – anubhava 2011-04-25 03:41:49