>  기사  >  CMS 튜토리얼  >  게시판을 자동으로 생성하는 WordPress 플러그인을 개발하는 방법

게시판을 자동으로 생성하는 WordPress 플러그인을 개발하는 방법

PHPz
PHPz원래의
2023-09-06 09:09:151203검색

게시판을 자동으로 생성하는 WordPress 플러그인을 개발하는 방법

메시지 보드를 자동으로 생성하는 WordPress 플러그인 개발 방법

대화형 웹사이트를 만들 때 메시지 보드는 필수입니다. WordPress 플랫폼에서는 사용자가 메시지 기능을 쉽게 추가할 수 있도록 메시지 게시판을 자동으로 생성하는 플러그인을 개발할 수 있습니다. 이 기사에서는 WordPress 플러그인 개발을 사용하여 이 목표를 달성하는 방법을 설명하고 해당 코드 예제를 제공합니다.

1단계: 플러그인 폴더 및 메인 파일 생성

먼저, 메시지 보드 플러그인을 배치할 폴더를 WordPress의 플러그인 디렉토리에 생성해야 합니다. 이 폴더의 이름을 "message-board"로 지정할 수 있습니다.

이 폴더에 "message-board.php"와 같은 기본 파일을 만듭니다. 이 파일은 플러그인의 항목 파일이 됩니다.

다음으로 "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
*/

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

?>

이 코드는 플러그인에 기본 정보를 제공하고 "Message Board"라는 플러그인을 생성합니다.

2단계: 데이터베이스 테이블 만들기

메시지 데이터를 저장하려면 데이터베이스 테이블을 만들어야 합니다. 이는 WordPress의 데이터베이스를 확장하여 수행할 수 있습니다.

"message-board.php" 파일의 메인 코드 블록에 다음 코드를 추가하세요:

// 当插件激活时,调用该函数创建数据库表格
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 );
}

이 코드는 플러그인이 활성화될 때 "create_message_board_table" 함수를 호출하여 "wp_message_board"라는 이름의 데이터베이스를 생성합니다 시트. 테이블에는 id, Author_name, message 및 submit_date와 같은 열이 포함됩니다.

3단계: 게시판 페이지 만들기

이제 WordPress에서 게시판을 표시할 페이지를 만들어야 합니다. 플러그인의 메인 파일에 단축 코드 기능을 추가하면 이를 달성할 수 있습니다.

"message-board.php" 파일의 메인 코드에 다음 코드를 추가합니다.

// 注册短代码
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();
}

이 코드에는 "message_board"라는 단축 코드를 등록하고 메시지 게시판 페이지를 생성합니다. 이 페이지에는 새 의견을 제출하기 위한 양식과 제출된 의견을 표시하기 위한 목록이 포함되어 있습니다.

4단계: 양식 제출 데이터 처리

사용자가 메시지를 제출하면 백엔드 처리 기능을 통해 메시지 데이터를 데이터베이스에 저장해야 합니다.

계속해서 "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;
    }
}

이 코드에서는 프런트 엔드 양식 제출을 처리하기 위해 "handle_message_submission"이라는 함수를 정의합니다. 이 함수는 양식에서 작성자의 이름과 메시지 내용을 가져와 데이터를 데이터베이스에 삽입합니다. 마지막으로 페이지를 게시판 페이지로 리디렉션합니다.

5단계: 제출된 메시지 표시

마지막으로 제출된 메시지를 표시하는 함수를 만들어야 합니다.

계속해서 "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 '暂时没有留言';
    }
}

이 코드에서는 "display_submitted_messages"라는 함수를 정의하여 데이터베이스 댓글에서 제출된 메시지를 가져와서 표시합니다. 그 페이지.

이제 자동으로 게시판을 생성하는 워드프레스 플러그인이 완성되었습니다. WordPress 백엔드의 플러그인 관리에서 이 플러그인을 활성화한 후 페이지에 단축 코드 "[message_board]"를 추가하면 메시지 보드를 표시할 수 있습니다.

이 기사가 WordPress 플러그인 개발에 도움이 되기를 바랍니다!

위 내용은 게시판을 자동으로 생성하는 WordPress 플러그인을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.