Php 使用FOREACH保存post meta并实现操作crud
我在数据库中手动注册了两张照片,并在“meta_key”栏中添加了“我的帖子图片”和帖子id 在部分下面的完整代码中,Php 使用FOREACH保存post meta并实现操作crud,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我在数据库中手动注册了两张照片,并在“meta_key”栏中添加了“我的帖子图片”和帖子id 在部分下面的完整代码中,$url=get\u post\u meta($post->ID,'my-image-for-post',false)我可以用foreach打印ULR 我无法保存多个图像,我有两个疑问: 1-如何用在图像管理器中选择的另一个url替换数据库中的当前url?如果单击“保存帖子”时没有url,如何使用foreach注册新url 2-如何在每个图像中添加删除和编辑按钮?因为我希望在保存
$url=get\u post\u meta($post->ID,'my-image-for-post',false)代码>我可以用foreach打印ULR
我无法保存多个图像,我有两个疑问:
1-如何用在图像管理器中选择的另一个url替换数据库中的当前url?如果单击“保存帖子”时没有url,如何使用foreach注册新url
2-如何在每个图像中添加删除和编辑按钮?因为我希望在保存帖子和永久注册ULR之前,用户可以更新、删除或添加新图像
add_action('plugins_loaded', function(){
if($GLOBALS['pagenow']=='post.php'){
add_action('admin_print_scripts', 'my_admin_scripts');
add_action('admin_print_styles', 'my_admin_styles');
}
});
function my_admin_scripts() { wp_enqueue_script('jquery'); wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); } // //wp_register_script('my-upload', WP_PLUGIN_URL.'/my-script.js', array('jquery','media-upload','thickbox')); wp_enqueue_script('my-upload');
function my_admin_styles() { wp_enqueue_style('thickbox'); }
add_action('add_meta_boxes', function(){ add_meta_box('my-metaboxx1', 'Galery','func99999', get_post_types(),'normal'); }, 9);
function func99999($post){
$url =get_post_meta($post->ID,'my-image-for-post', false); ?>
<input id="my_upl_button" type="button" value="Upload Image" /><br/>
<?php foreach ($url as $field) {
?>
<img src="<?php echo $field;?>" style="width:200px;" />
<?php
};
?>
<div id="display">
</div>
<script>
jQuery(document).ready( function( $ ) {
var custom_uploader;
$('#my_upl_button').click(function(e) {
e.preventDefault();
//If the uploader object has already been created, reopen the dialog
if (custom_uploader) {
custom_uploader.open();
return;
}
//Extend the wp.media object
custom_uploader = wp.media.frames.file_frame = wp.media({
title: 'Choose Image',
button: {
text: 'Choose Image'
},
multiple: true
});
custom_uploader.on('select', function() {
var selection = custom_uploader.state().get('selection');
selection.map( function( attachment ) {
attachment = attachment.toJSON();
$("#display").after("<input id='upload_image' type='text' size='36' name='upload_image' value= " +attachment.url+ " /></br><img src=" +attachment.url+" class='my_image_URL' src='' width='80px'></br>");
});
});
custom_uploader.open();
});
});
</script>
<?php
}
add_action( 'save_post', function ($post_id) {
// foreach here I tried but I could not
});
二,
在jquery代码中,您使用名称='my\u image\u URL'正确创建输入
$("#show").after("<input class='upload_image' type='text' size='36' name='my_image_URL' value= " +attachment.url+ " /></br><img src=" +attachment.url+" class='my_image' src='' width='80px'></br>");
$(“#show”)。在(“”)之后;
有人能帮我解答这个问题吗?实际上,我已经尝试了几天使用foreach保存所有选定的图像,但是我无法解决这个问题。有人能帮我解决这个问题吗?实际上,我已经尝试了几天使用foreach保存所有选定的图像,但我无法解析
add_action( 'save_post', function ($post_id) {
if (isset($_POST['my_image_URL'])){
$urls = $_POST['my_image_URL'];
Foreach ($urls as $url){
update_post_meta($post_id, 'my-image-for-post',$url);
}
}
});
$("#show").after("<input class='upload_image' type='text' size='36' name='my_image_URL' value= " +attachment.url+ " /></br><img src=" +attachment.url+" class='my_image' src='' width='80px'></br>");