最新的一个wordpress建站项目中,需要把产品和文章分开管理,但服务器配置又有点差,用woocommerce就不太好。所以我是通过添加自定义分类来专门管理产品的,但添加的自定义分类并不能像woocommerce产品那样上传多张图片。
这个功能也是折腾了挺久了,用到的代码参考如下,可以使用wp code添加,添加后编辑自定义的产品分类时页面底部就多出一个相册上传的功能。添加之后可以使用Elementor的相册或轮播模块调用,然后把它制作到产品详情页的模块中就可以了。
不过实际使用下来这个代码有点问题,前端有时可能不会显示相册图片,反正是不太好像,最后我还是放弃了,直接使用了ACF插件,简单快速。
以下的测试代码,如有兴趣可以拿去自己测试研究。这个发出只是给自己留个记录。记得一定不要在正式环境使用。
function add_gallery_meta_box() {
add_meta_box(
'article_gallery',
'图片相册',
'render_gallery_meta_box',
'post',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'add_gallery_meta_box');
function render_gallery_meta_box($post) {
$images = get_post_meta($post->ID, '_article_gallery', true);
echo '<input type="hidden" name="article_gallery_nonce" value="' . wp_create_nonce('article_gallery_nonce') . '">';
echo '<button type="button" id="upload_images_button">上传图片</button>';
echo '<div id="gallery_preview">';
if ($images) {
foreach ($images as $img_id) {
$img_url = wp_get_attachment_url($img_id);
echo '<img src="' . esc_url($img_url) . '" style="max-width:100px; margin:5px;">';
}
}
echo '</div>';
// 后续需要添加JavaScript实现图片上传和保存
}
// 保存meta
function save_gallery_meta($post_id) {
if (!isset($_POST['article_gallery_nonce']) || !wp_verify_nonce($_POST['article_gallery_nonce'], 'article_gallery_nonce')) {
return;
}
if (isset($_POST['article_gallery'])) {
update_post_meta($post_id, '_article_gallery', $_POST['article_gallery']);
}
}
add_action('save_post', 'save_gallery_meta');
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号