在WordPress中创建图像库,可以通过使用插件或自定义代码来实现。
使用插件:
例如,使用NextGEN Gallery插件实现图像库:
使用自定义代码:
例如,使用自定义代码实现图像库:
function custom_image_upload() {
// 判断是否有上传文件
if (!empty($_FILES['image'])) {
$image = $_FILES['image'];
$upload_dir = wp_upload_dir();
// 上传图片并存储
$image_name = time() . '-' . $image['name'];
$upload_path = $upload_dir['path'] . '/' . $image_name;
move_uploaded_file($image['tmp_name'], $upload_path);
// 插入数据库
global $wpdb;
$wpdb->insert($wpdb->prefix . 'images', array(
'created_at' => current_time('mysql'),
'filename' => $image_name,
'category' => $_POST['category_id'],
'tag' => $_POST['tag'],
), array('%s', '%s', '%d', '%s'));
echo '上传成功';
}
}
// 在WordPress中创建自定义API
add_action('rest_api_init', function () {
register_rest_route('myplugin/v1', '/upload-image', array(
'methods' => 'POST',
'callback' => 'custom_image_upload',
));
});
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . 'images';
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
created_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
filename varchar(100) NOT NULL,
category smallint(5) UNSIGNED NOT NULL,
tag text NOT NULL,
PRIMARY KEY (id),
KEY created_at (created_at)
) $charset_collate;";
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
dbDelta($sql);
基于前面的函数,代码如下:
global $wpdb;
$categories = $wpbd->get_results('SELECT * FROM ' . $wpdb->prefix . 'categories');
echo '
';
$images = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'images');
foreach ($images as $image) {
echo '';
}
注意,使用自定义代码实现图像库需要更加深入的WordPress知识,需要谨慎操作。