2015-09-14 86 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

谢谢。我会试一下 –