WP INSERT POST PHP函数动态生成的自定义字段

时间:2011-02-05 作者:Robin I Knight

关于我之前的问题WP insert post PHP function and Custom Fields

我们有一个正在工作的insert post函数,它还可以在不知道ID的情况下发送自定义字段。有关答案,请参阅前面的问题。我们现在要做的是动态加载一些自定义字段。页面顶部的会话已加载来自称为服务的post类型的所有信息。这是一段代码,然后将其拾取并插入到新帖子中。

    <?php 
$my_post = array(
    \'post_title\' => $_SESSION[\'booking-form-title\'],
    \'post_date\' => $_SESSION[\'cal_startdate\'],
    \'post_content\' => \'This is my post.\',
    \'post_status\' => \'publish\',
    \'post_type\' => \'booking\',
);
$the_post_id = wp_insert_post( $my_post );


__update_post_meta( $the_post_id, \'duration\', $_SESSION[\'booking-form-actual-duration\'] );
__update_post_meta( $the_post_id, \'picture\', $_SESSION[\'booking-form-picture\'] );
__update_post_meta( $the_post_id, \'totalprice\', $_SESSION[\'booking-form-total-price\'] );
__update_post_meta( $the_post_id, \'activityduration\', $_SESSION[\'booking-form-total-duration\'] );
__update_post_meta( $the_post_id, \'totaldives\', $_SESSION[\'booking-form-total-dives\'] );

query_posts(\'post_type=services\'); while (have_posts()) : the_post();
__update_post_meta( $the_post_id, \'producttitle\'.get_the_ID(), $_SESSION[\'products-form-title\'.get_the_ID()]); 
__update_post_meta( $the_post_id, \'productprice\'.get_the_ID(), $_SESSION[\'products-form-price\'.get_the_ID()]); 
__update_post_meta( $the_post_id, \'productduration\'.get_the_ID(), $_SESSION[\'products-form-duration\'.get_the_ID()]);
__update_post_meta( $the_post_id, \'productdives\'.get_the_ID(), $_SESSION[\'products-form-dives\'.get_the_ID()]);  
__update_post_meta( $the_post_id, \'productquantity\'.get_the_ID(), $_SESSION[\'products-form-quantity\'.get_the_ID()]); 

 endwhile; ?>
请注意查询帖子和使用get\\u the\\u ID()进行区分。要加载数据的页面顶部的会话也发生了同样的情况。

然后接收它的代码如下所示。请注意,IF语句的原因是仅显示具有数量的项目的数据。页面上的其他php代码检索其他自定义帖子。

<?php query_posts(\'post_type=services\'); while (have_posts()) : the_post(); 
        $SPtitle = get_post_meta($post->ID, \'producttitle\'.get_the_ID(), true);
        $SPprice = get_post_meta($post->ID, \'productprice\'.get_the_ID(), true); 
        $SPduration = get_post_meta($post->ID, \'productduration\'.get_the_ID(), true);
        $SPdives = get_post_meta($post->ID, \'productdives\'.get_the_ID(), true);
        $SPquantity = get_post_meta($post->ID, \'productquantity\'.get_the_ID(), true);
        if ( $SPquantity ) { 
        echo \'<table width="478" border="0" cellspacing="5" cellpadding="0">
           <tr>
             <td width="50"><div style="border:1px solid #FFF;">\',the_post_thumbnail(array(50, 50, true)),\'</div></td>
             <td width="399" style="padding-left:14px;"><div class="textstandard_white"><span style="display:none;" id="QNTCON\',get_the_ID(),\'">\',$SPquantity,\'</span> \', $SPtitle,\'</div><div class="textstandard_white" style="font-size:10px; color:#EEE">\',the_excerpt(),\'<input name="product_price_PRI_\',get_the_ID(),\'" id="product_price_PRI_\',get_the_ID(),\'" type="hidden" value="\',$SPprice,\'">
<input name="product_price_total_PRI_\',get_the_ID(),\'" id="product_price_total_PRI_\',get_the_ID(),\'" type="hidden" value="">
<input name="product_duration_PRI_\',get_the_ID(),\'" id="product_duration_PRI_\',get_the_ID(),\'" type="hidden" value="\',$SPduration,\'">
<input name="product_duration_total_PRI_\',get_the_ID(),\'" id="product_duration_total_PRI_\',get_the_ID(),\'" type="hidden" value="">
<input name="product_dives_PRI_\',get_the_ID(),\'" id="product_dives_PRI_\',get_the_ID(),\'" type="hidden" value="\',$SPdives,\'">
<input name="product_dives_total_PRI_\',get_the_ID(),\'" id="product_dives_total_PRI_\',get_the_ID(),\'" type="hidden" value="">

<input name="product_quantity_PRI_\',get_the_ID(),\'" id="product_quantity_PRI_\',get_the_ID(),\'" type="hidden" title="" value="\',$SPquantity,\'"/></div></td>
           </tr>
         </table>\';
}
else {
echo \'\';
};?>
                <?php endwhile; ?>
对,所以我希望这能解释我想做什么。我要指出的是,除了查询区服务之外,它都可以正常工作。因此,我为您提供了这段代码。有人知道为什么那个钻头不起作用吗。

好极了,谢谢。

1 个回复
SO网友:Robin I Knight

<?php  
              $thispostID = $post->ID
              ;?><?php

              query_posts(\'post_type=services\'); while (have_posts()) : the_post();
在查询服务之前,需要获取主帖子的帖子id。

将所有引用更改为$post->ID$thispostID

结束

相关推荐

当jQuery与删除链接上的单击事件一起使用时,如何删除帖子附件

我认为我所需要做的事情是正确的,至少是因为我做了可以做到的事情之一。虽然我不太确定,但据我所知,我可能会偏离正轨。这是昨晚我需要帮助调整上传图像文件大小的代码的一部分,但现在我正试图找出如何使用wp\\u delete\\u attachment($id)功能删除附在帖子上的图像。因此,我有一个jQuery脚本,它可以添加/删除额外的字段,用于上传更多要附加的图像。对于每个添加的图像,都有一个删除它们的链接。单击“删除”只会删除所单击的链接所包含的div,保存帖子时,附加文件将显示为仍然附加。在remov