ホームページ  >  記事  >  CMS チュートリアル  >  画像ギャラリーを自動生成するWordPressプラグインを開発する方法

画像ギャラリーを自動生成するWordPressプラグインを開発する方法

PHPz
PHPzオリジナル
2023-09-05 11:54:21670ブラウズ

画像ギャラリーを自動生成するWordPressプラグインを開発する方法

画像ライブラリを自動生成する WordPress プラグインの開発方法

モバイル インターネットの発展により、画像は私たちが表現するための一般的なメディアになりました。そしてオンラインで情報を発信します。個人ブログを開設して維持する過程では、通常、画像リソースを管理および表示するための画像ライブラリが必要になります。この記事では、WordPress ブログユーザーが使いやすいように、画像ライブラリを自動生成する WordPress プラグインの開発方法とコード例を紹介します。

まず、WordPress プラグインのインフラストラクチャを作成する必要があります。 WordPress プラグイン ディレクトリに新しいフォルダーを作成し、その中に image-library.php という名前のプラグイン マスター ファイルを作成します。メインファイルでは、プラグインの基本情報と初期化関数を定義する必要があります。

<?php
/*
Plugin Name: 图片库
Plugin URI: https://www.example.com
Description: 一个自动生成图片库的WordPress插件
Version: 1.0
Author: Your Name
Author URI: https://www.example.com
License: GPL2
*/

// 初始化插件
function image_library_init() {
    // 在这里添加插件的初始化逻辑
}
add_action('init', 'image_library_init');

次に、画像情報を保存するためのカスタム データベース テーブルを追加する必要があります。開発プロセスを簡素化するために、WordPress に付属する wpdb クラスを使用してデータベース操作を実行します。

// 创建数据库表
function image_library_create_table() {
    global $wpdb;

    $table_name = $wpdb->prefix . 'image_library'; // 添加表前缀
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        title text NOT NULL,
        file_url text NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql ); // 创建表
}
register_activation_hook( __FILE__, 'image_library_create_table' );

次に、ユーザーが画像ライブラリ管理インターフェイスにアクセスできるように、WordPress バックエンドにメニュー項目を追加する必要があります。 add_menu_page 関数を使用して、この機能を実現できます。

// 添加菜单项
function image_library_add_menu() {
    add_menu_page(
        '图片库',
        '图片库',
        'manage_options',
        'image-library',
        'image_library_menu',
        'dashicons-format-gallery',
        25
    );
}
add_action('admin_menu', 'image_library_add_menu');

次に、メニューに対応するインターフェイスを作成する必要があります。このインターフェースでは、すべての画像のリストを表示し、画像をアップロードおよび削除する機能を提供できます。

// 图片库管理界面
function image_library_menu() {
    if (!current_user_can('manage_options')) {
        wp_die(__('您没有权限访问该页面。'));
    }

    // 添加上传图片逻辑
    if (isset($_POST['submit'])) {
        $title = sanitize_text_field($_POST['title']);
        $file_url = sanitize_text_field($_POST['file_url']);

        global $wpdb;
        $table_name = $wpdb->prefix . 'image_library';
        $wpdb->insert($table_name, array('title' => $title, 'file_url' => $file_url));

        echo '<div class="notice notice-success"><p>图片上传成功!</p></div>';
    }

    // 添加删除图片逻辑
    if (isset($_GET['delete']) && isset($_GET['nonce'])) {
        if (!wp_verify_nonce($_GET['nonce'], 'delete_image')) {
            wp_die(__('非法请求。'));
        }

        $id = intval($_GET['delete']);

        global $wpdb;
        $table_name = $wpdb->prefix . 'image_library';
        $wpdb->delete($table_name, array('id' => $id));

        echo '<div class="notice notice-success"><p>图片删除成功!</p></div>';
    }

    // 展示图片列表
    global $wpdb;
    $table_name = $wpdb->prefix . 'image_library';
    $images = $wpdb->get_results("SELECT * FROM $table_name");

    echo '<div class="wrap">';
    echo '<h1>图片库管理</h1>';

    echo '<form method="post">';
    echo '<table class="wp-list-table widefat fixed striped">';
    echo '<thead><tr><th>标题</th><th>图片链接</th><th>操作</th></tr></thead>';
    echo '<tbody>';
    foreach ($images as $image) {
        echo '<tr>';
        echo '<td>' . $image->title . '</td>';
        echo '<td><a href="' . $image->file_url . '">' . $image->file_url . '</a></td>';
        echo '<td><a href="?page=image-library&delete=' . $image->id . '&nonce=' . wp_create_nonce('delete_image') . '">删除</a></td>';
        echo '</tr>';
    }
    echo '</tbody>';
    echo '</table>';

    echo '<h2>上传图片</h2>';
    echo '<label>标题:<input type="text" name="title" required></label><br>';
    echo '<label>图片链接:<input type="text" name="file_url" required></label><br>';
    echo '<input type="submit" name="submit" value="上传">';
    echo '</form>';

    echo '</div>';
}

最後に、投稿またはページに画像を埋め込むために、ショートコードを画像ギャラリーに追加する必要があります。

// 图片库短代码
function image_library_shortcode($atts) {
    ob_start();
    global $wpdb;
    $table_name = $wpdb->prefix . 'image_library';
    $images = $wpdb->get_results("SELECT * FROM $table_name");

    echo '<div class="image-library">';
    foreach ($images as $image) {
        echo '<div class="image-item">';
        echo '<h3>' . $image->title . '</h3>';
        echo '<img  src="' . $image- alt="画像ギャラリーを自動生成するWordPressプラグインを開発する方法" >file_url . '">';
        echo '</div>';
    }
    echo '</div>';

    return ob_get_clean();
}
add_shortcode('image-library', 'image_library_shortcode');

これで、画像ライブラリを自動生成するWordPressプラグインの開発が完了しました。上記のコードをメインのプラグイン ファイル image-library.php に保存し、そのファイルを WordPress プラグイン ディレクトリに配置できます。次に、WordPress バックエンド プラグイン管理ページでプラグインを有効化します。

プラグインを開発する際は、WordPress の開発仕様にできる限り準拠するよう留意し、ユーザーに使いやすいインターフェースと操作体験を提供してください。この記事が WordPress プラグインの開発に役立つことを願っています。

以上が画像ギャラリーを自動生成するWordPressプラグインを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。