2015-09-14 38 views
2

因此,我有各種用戶的自定義帖子。如下所示「致電」發佈信息從「post_id」

post_widthpost_height與通常的數據如titledescription等沿着:

每個柱具有以下的元密鑰

$tags = $_POST['post_tags']; 
$custom_field_1 = $_POST['custom_1']; 
$custom_field_2 = $_POST['custom_2']; 

$post = array(
    'post_title' => $title, 
    'post_content' => $description, 
    'post_category' => $_POST['cat'], 
    'tags_input' => $tags,         
    'post_status' => 'publish',   
    'post_type' => $_POST['post_type'] 
    );        
$pid = wp_insert_post($post); 
add_post_meta($pid, 'post_width', $custom_field_1, true); 
add_post_meta($pid, 'post_height', $custom_field_2, true); 

現在當這些帖子被顯示在一個循環中,它們通過$id = get_the_ID();

現在最有趣的部分分別獲得post_id

現在,假設有5個帖子顯示,並且每個人都有獨特的post_id,如下面data-post_id中的按鈕所示。

<?php echo '<button type="button" class="contact_button" data-post_id="' .$id. '">' ;?> 
    Open the contact form 
<?php echo '</button>';?> 

當單擊該按鈕,然後在下面的聯繫表格將被顯示:

<form action="<?php the_permalink(); ?>" method="post"> 
     <p><label for="name">Name: <span>*</span> <br><input type="text" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>"></label></p> 
     <p><label for="message_email">Email: <span>*</span> <br><input type="text" name="message_email" value="<?php echo esc_attr($_POST['message_email']); ?>"></label></p> 
     <p><label for="message_text">Message: <span>*</span> <br><textarea type="text" name="message_text"><?php echo esc_textarea($_POST['message_text']); ?></textarea></label></p> 
     <p><label for="message_human">Human Verification: <span>*</span> <br><input type="text" style="width: 60px;" name="message_human"> + 3 = 5</label></p> 
     <input type="hidden" name="submitted" value="1"> 
     <p><input type="submit"></p> 
    </form> 

正如你所看到的,接觸的形式是沒有任何幻想。

這是我想實現

由於有5個職位,我想使它非常具體到每個帖子的時候發送的聯繫方式。

這是我的意思。

讓我們說有5個職位,如下圖所示:

帖子#1:

  • 標題:什麼,每天
  • 發表作者:邁克
  • 發佈作者的電子郵件: mike @示例。COM
  • 後DESCRIPT:這是一個陽光燦爛的日子
  • 寬度: 14px的
  • 身高: 15px的
  • 聯繫人按鈕

帖子#2:

  • 標題:這是一個後2
  • 發表作者:史蒂夫
  • 帖子作者的電子郵件: [email protected]
  • 後DESCRIPT:這是星期天
  • 寬度: 1222px
  • 身高: 1233 PX
  • 聯繫人按鈕

等,現在

,每個崗位都有contact button和點擊按鈕和顯示的聯繫表格的時候,我想自動擁有這些post meta要填寫(當然是隱藏的)。所以當表單被提交時,它將具有發佈信息並能夠分辨查看者與哪個帖子聯繫。

我希望我有道理。

所以,這是我的問題。

我如何callsave元后(如標題,描述,自定義元等),根據每個崗位的post_id? (因爲每個按鈕將有獨特的post_id,這將是一個很好的起點call其餘的數據)

任何幫助將不勝感激。

謝謝!

更新1:

所以,我有一個contact.php這是通過AJAX所謂的聯繫方式。

我之所以使用ajax來調用聯繫表格是爲了節省帶寬。這是一個場景。假設一個頁面上有50個帖子。然後,如果爲所有帖子生成contact form,那麼這將嚴重增加總頁面大小。

爲了避免它,我實現了ajax來調用聯繫表單只有當按鈕被點擊。

所以,這是一個問題。

如何將post_id「傳遞」給另一個php文件? (contact_form.php),這樣聯繫表格將是唯一的?

謝謝!

回答

3

您是否嘗試過使用類似這種

get_post_meta() 

東西:

$custom-meta = get_post_meta($post_id, 'custom-meta', true) 

你可以在這裏找到更多信息。 https://developer.wordpress.org/reference/functions/get_post_meta/

至於標題,你可能只是這樣做

$post_title = get_the_title($post_id); 
echo $post_title 

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

然後,您可以隱藏字段添加到與數據表單。

+0

謝謝你的回覆。所以我對這個帖子進行了更新。因此,在總結中,我使用ajax來調用「聯繫表單」來節省帶寬。現在,您是否會知道如何將帖子ID及其元鍵傳遞給另一個「文件」? –

+0

您的表單操作應該是處理表單的文件的路徑。這是我在插件內部使用時所使用的。你需要確保你的ajax是設置好的。

galfaro

+0

謝謝。我會試一下 –