我使用wordpress作为cms。我想从我的wordpress站点的前端通过表单插入自定义数据,然后在某个页面上的某个地方回显它。学习之后here and there 我能够把一个代码放在一起,在它下面工作。下面是我的表单当前的代码。
<form id="costing_submit_form" action="http://somesite.com/..../process-costing.php" method="post">
<input type="hidden" name="costing_submit_date" value="<?php echo $costing_submit_date;?>"/>
<input type="text" id="costing_submit_title" name="costing_submit_title" size="90%" maxlength="150" /><br>
<textarea id="costing_submit_description" name="costing_submit_description" size="90%" cols="60" rows="10 tabindex="15" maxlength="2000" rows="20" required="" /></textarea>
<input type="submit" class="costing_submit_button" name="costing_submit_button" value="SUBMIT COSTING" />
</form>
此时,我可以插入数据并使用$wpdb在前端显示它。这部分代码位于
process-costing.php
将数据插入数据库表中。
global $wpdb;
require_once(\'../../../wp-load.php\');
$costing_submit_date = strip_tags($_POST[\'costing_submit_date\']);
$costing_submit_title = strip_tags($_POST[\'costing_submit_title\']);
$costing_submit_description = strip_tags($_POST[\'costing_submit_description\']);
$table_name = $wpdb->prefix . "costing";
$wpdb->insert( $table_name, array(
\'costing_date\' => $costing_submit_date,
\'costing_title\' => $costing_submit_title,
\'costing_description\' => $costing_submit_description,
));
现在,我想
add an image to every entry made, 那么我该怎么做呢。如果没有一个完整的解决方案,请给我一个路线图,说明我应该做什么或遵循什么,我应该使用什么具体功能?即使我可以上传图片。我主要关心的是
associate the uploaded image to that particular entry
...可能是像post缩略图之类的?如果可能的话,我也想
assign a particular folder
这些图像。提前谢谢。
最合适的回答,由SO网友:Jörn Lund 整理而成
对于图像上载,您可以使用wp_handle_upload()
. 添加附件可以通过wp_insert_attachment()
. 附件和成本项目之间的关联可以通过以下方式实现update_post_meta()
. 旁白:以下划线开头的元键_
没有显示在WordPress UI中。
您的代码可能如下所示:
<?php
$my_costing_id; /* contains the id of the corresponding item in your costing table */
// create attachment
$attachment_data = array(
\'post_title\' => \'An Image\',
\'post_content\' => \'An Image\',
\'post_status\' => \'publish\',
\'post_mime_type\' => \'image/jpeg\',
);
$attachment_id = wp_insert_attachment($attachment_data , \'path/to/uploaded/file.jpg\' );
update_post_meta( $attachment_id , \'_costing_id\' , $my_costing_id );
获取
$costing_id
对应于已知
$attachment_id
简单使用
get_post_meta
. 获取
$attachment_id
对应的
$costing_id
, 您需要编写自己的SQL查询并将其传递给
$wpdb
:
<?php
$attachment_id = $wpdb->get_var( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_value=%d AND meta_key=%s") , $costing_id , \'_costing_id\' );
希望这有帮助,
问候j。