2015-06-24 44 views
0

嘗試從前端窗體更新post_status,但無法弄清楚它出錯的位置。沒有下面的代碼將它保存爲post_status的「草稿」。我無法更改選擇名稱=「post_status []」,因爲插件會自動生成它。保存來自WP前端窗體(WP用戶前端插件)的post_status

前端爲post_status形式自定義字段

<select class="wpuf_post_status_51" name="post_status[]" data-required="yes" data-type="select"> 
    <option value="private" selected="selected">Private</option> 
    <option value="publish">Public</option> 
</select> 

功能的function.php和文檔插件。 http://tareq.wedevs.com/2012/04/how-to-extend-wp-user-frontend/

// Save custom Privacy option to DB 
function privacy_post_status($postarr) { 
    $postarr['post_status'] = trim($_POST['post_status[]']); 
    return $postarr; 
} 

add_filter('wpuf_add_post_args', 'privacy_post_status'); 
add_filter('wpuf_update_post_args', 'privacy_post_status'); 
+0

什麼var_dump $ _POST ['post_status []']給你? – vimes1984

回答

0

只是檢查...爲什麼你使用[]?只選擇接受1值,所以返回可能是一個字符串。

如果這是一個多選(不看起來像它),你可以嘗試使用foreach:

foreach ($_POST['post_status'] as $status) { 
    $postarr['post_status'] = $status; 
} 

或者類似的東西。

更新:在foreach中添加括號。

+0

謝謝。有用!選擇由插件生成,即使在單個值上也帶有[]。 – Ohsik

+0

它需要括號壽。 foreach($ _POST ['post_status']作爲$狀態){ $ postarr ['post_status'] = $ status; } – Ohsik