Maison  >  Article  >  Tutoriel CMS  >  Comment développer un plugin WordPress qui génère automatiquement des forums de discussion

Comment développer un plugin WordPress qui génère automatiquement des forums de discussion

PHPz
PHPzoriginal
2023-09-06 09:09:151183parcourir

Comment développer un plugin WordPress qui génère automatiquement des forums de discussion

Comment développer un plug-in WordPress qui génère automatiquement des forums de messages

Lors de la création d'un site Web interactif, un forum de messages est indispensable. Sur la plateforme WordPress, afin de faciliter aux utilisateurs l'ajout de fonctions de message, nous pouvons développer un plug-in qui génère automatiquement des forums de messages. Cet article expliquera comment utiliser le développement de plugins WordPress pour atteindre cet objectif et fournira des exemples de code correspondants.

Première étape : créer le dossier du plugin et le fichier principal

Tout d'abord, nous devons créer un dossier dans le répertoire des plugins de WordPress pour placer notre plugin de forum de messages. Vous pouvez nommer ce dossier « message-board ».

Dans ce dossier, créez un fichier principal, par exemple "message-board.php". Ce fichier sera le fichier d'entrée du plugin.

Ensuite, ajoutez le code suivant au fichier "message-board.php":

<?php
/*
Plugin Name: 留言板
Plugin URI: https://www.example.com/message-board
Description: 自动生成留言板的WordPress插件
Version: 1.0
Author: Your Name
Author URI: https://www.example.com
*/

// 在这里编写插件的主要代码

?>

Ce code fournit des informations de base au plugin et crée un plugin appelé "Message Board".

Étape 2 : Créer une table de base de données

Afin de sauvegarder les données du message, nous devons créer une table de base de données. Cela peut être fait en étendant la base de données de WordPress.

Dans le bloc de code principal du fichier "message-board.php", ajoutez le code suivant :

// 当插件激活时,调用该函数创建数据库表格
register_activation_hook( __FILE__, 'create_message_board_table' );

function create_message_board_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'message_board';

    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        author_name varchar(150) NOT NULL,
        message text NOT NULL,
        submit_date datetime NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}

Ce code appellera la fonction "create_message_board_table" lorsque le plugin sera activé, ce qui créera une base de données nommée "wp_message_board" feuille. Le tableau comprend des colonnes telles que id, author_name, message et submit_date.

Étape 3 : Créer une page de babillard électronique

Maintenant, nous devons créer une page dans WordPress pour afficher le babillard électronique. Nous pouvons y parvenir en ajoutant une fonction shortcode au fichier principal du plugin.

Dans l'extrait de code principal du fichier "message-board.php", ajoutez le code suivant :

// 注册短代码
add_shortcode( 'message_board', 'display_message_board' );

// 短代码函数
function display_message_board() {
    ob_start();
    ?>

    <h3>留言板</h3>

    <!-- 留言板表单 -->
    <form id="message_form" method="post" action="<?php echo esc_url( admin_url('admin-post.php') ); ?>">
        <input type="hidden" name="action" value="submit_message">
        <label for="author_name">姓名:</label>
        <input type="text" name="author_name" required>
        <br>
        <label for="message">留言:</label>
        <textarea name="message" cols="30" rows="5" required></textarea>
        <br>
        <input type="submit" value="提交">
    </form>

    <!-- 已提交的留言 -->
    <div id="message_list">
        <?php // 调用函数来展示已提交的留言 ?>
        <?php display_submitted_messages(); ?>
    </div>

    <?php
    return ob_get_clean();
}

Dans ce code, nous enregistrons un shortcode appelé "message_board" et créons une page de forum de messages. La page contient un formulaire pour soumettre de nouveaux commentaires et une liste pour afficher les commentaires soumis.

Étape 4 : Traiter les données de soumission du formulaire

Lorsque l'utilisateur soumet un message, nous devons enregistrer les données du message dans la base de données via une fonction de traitement backend.

Continuez à ajouter le code suivant à l'extrait de code principal dans le fichier "message-board.php":

// 处理留言提交
add_action( 'admin_post_nopriv_submit_message', 'handle_message_submission' );
add_action( 'admin_post_submit_message', 'handle_message_submission' );

function handle_message_submission() {
    if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
        global $wpdb;
        $table_name = $wpdb->prefix . 'message_board';

        $author_name = sanitize_text_field( $_POST['author_name'] );
        $message = sanitize_textarea_field( $_POST['message'] );

        $data = array(
            'author_name' => $author_name,
            'message' => $message,
            'submit_date' => current_time( 'mysql' )
        );

        $wpdb->insert( $table_name, $data );

        wp_redirect( get_permalink() );
        exit;
    }
}

Dans ce code, nous définissons une fonction appelée "handle_message_submission" pour gérer la soumission du formulaire front-end. La fonction récupère le nom de l'auteur et le contenu du message à partir du formulaire et insère les données dans la base de données. Enfin, nous redirigeons la page vers la page du forum.

Étape 5 : Afficher les messages soumis

Enfin, nous devons créer une fonction pour afficher les messages soumis.

Continuez à ajouter le code suivant à l'extrait de code principal dans le fichier "message-board.php":

function display_submitted_messages() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'message_board';

    $results = $wpdb->get_results( "SELECT * FROM $table_name" );

    if ( $results ) {
        foreach ( $results as $result ) {
            echo '<div class="message">';
            echo '<p><strong>作者: </strong>' . esc_html( $result->author_name ) . '</p>';
            echo '<p><strong>留言: </strong>' . esc_html( $result->message ) . '</p>';
            echo '<p><strong>时间: </strong>' . esc_html( $result->submit_date ) . '</p>';
            echo '</div>';
        }
    } else {
        echo '暂时没有留言';
    }
}

Dans ce code, nous définissons une fonction appelée "display_submitte_messages" pour obtenir les messages soumis à partir des commentaires de la base de données et affichés sur la page.

À ce stade, nous avons réalisé un plug-in WordPress qui génère automatiquement des forums de discussion. Après avoir activé ce plug-in dans la gestion des plug-ins du backend WordPress, vous pouvez afficher le forum en ajoutant le short code "[message_board]" à la page.

J'espère que cet article vous sera utile dans le développement de plugins WordPress !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn