我正在制作自己的自定义帖子类型, 目前正在其中显示图库中的所有图像以及每个图像的复选框。我希望用户能够选中他/她想要在帖子上显示的图像的复选框。这部分有效。问题是提交表单后, 该复选框未选中。如何保持检查状态?
function po_product_image_html($post) {echo '<
div style="width: 80px;
display: inline-block;
">
';
$imgs = get_media_library_images();
foreach ($imgs as $img)
{
echo '<
img style="height: 80px;
width: 80px;
padding: 10px;
" src="'.$img.'" />
';
echo '<
input name="product_image[]" type="checkbox" value="'.$img.'" />
';
}echo '<
/div>
';
}
保存表格的功能。
function po_products_save_postdata() {global $post;
update_post_meta($post->
ID, 'product_desc', $_POST['product_desc']);
update_post_meta($post->
ID, 'product_url', $_POST['product_url']);
update_post_meta($post->
ID, 'product_image', $_POST['product_image']);
}add_action('save_post', 'po_products_save_postdata');
从第一个代码段中使用的媒体库获取图像的功能。
function get_media_library_images()
{
$args = array(
'post_type' =>
'attachment', 'post_mime_type' =>
'image', 'post_status' =>
'inherit', 'posts_per_page' =>
-1
);
$query_images = new WP_Query($args);
$images = array();
foreach ($query_images->
posts as $image)
{
$images[] = $image->
guid;
}return $images;
}
我已经尝试过isset($ _ POST [‘ product_image’ ])来在复选框中回显checked =” checked” , 但到目前为止还没有运气。 $ _POST [‘ product_image’ ]是数组的问题吗?
【提交表单后,请保持选中复选框,自定义帖子类型】最好的问候, Mac。
#1设法通过以下方式解决它:
echo '<
div>
';
global $post;
$imgs = get_media_library_images();
$post_selected_images = get_post_meta($post->
ID, 'product_image', true);
foreach ($imgs as $img) {
<
input name="product_image[]" type="checkbox" <
?php if(in_array($img, $post_selected_images)) echo 'checked="checked"';
?>
value="http://www.srcmini.com/<
?php echo $img ?>" />
<
?php
echo '<
/div>
';
}echo '<
/div>
';
如果$ img变量的值存储在$ post_selected_images数组中, 我只需在输入元素中回显’ checked =” checked” ‘ 。
推荐阅读
- 如果同一用户再次登录,则销毁上一个会话
- functions.php内部的jQuery脚本不起作用
- 在wordpress网站内使用hubspot表单时,jQuery丢失
- jQuery隐藏按钮,如果文本框为空,则显示,如果文本框具有值
- jQuery代码不适用于WordPress的Div主题[重复]
- 连接表格并获取数据到手风琴/可折叠和表格
- jQuery ajax打破了我的Divi主题。我如何解决它()
- 12月活动|重拾写作的力量,挑战7/14/21日连更!
- 网络编程框架t-io的编程基本知识介绍