WordPress プラグインに Q&A 機能を追加する方法
WordPress は強力で柔軟なコンテンツ管理システムであり、プラグインはユーザーにさらにカスタマイズ可能な機能を提供します。アクティブなコミュニティやインタラクティブな Web サイトを構築する場合、Q&A 機能を追加することは優れたオプションです。この記事では、WordPress プラグインに Q&A 機能を追加する方法とコード例を紹介します。
CREATE TABLE wp_questions ( id INT AUTO_INCREMENT PRIMARY KEY, question VARCHAR(255), answer TEXT, user_id INT, create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
WordPress では、dbDelta
関数を使用してデータベース テーブルを作成および更新できます。以下は、質問と回答の表を作成するためのサンプル関数です。
function create_question_table() { global $wpdb; $table_name = $wpdb->prefix . 'questions'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id INT AUTO_INCREMENT PRIMARY KEY, question VARCHAR(255), answer TEXT, user_id INT, create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); }
template-qa.php
という名前のファイルを作成し、その中に次のコードを追加します。 <?php /* Template Name: Q&A Template */ get_header(); ?> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php while ( have_posts() ) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <h1 class="entry-title"><?php the_title(); ?></h1> </header> <div class="entry-content"> <?php the_content(); ?> </div> </article> <?php endwhile; ?> <?php global $wpdb; $table_name = $wpdb->prefix . 'questions'; $questions = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY create_date DESC" ); foreach ( $questions as $question ) { echo '<h2>' . $question->question . '</h2>'; echo '<p>' . $question->answer . '</p>'; } ?> </main> </div> <?php get_sidebar(); get_footer(); ?>
バックグラウンドで新しいページを作成し、 Q&A テンプレート
をページ テンプレートとして使用します。
<form action="" method="post"> <label for="question">问题:</label> <input type="text" name="question" id="question"> <input type="submit" value="提交问题"> </form> <?php if ( isset( $_POST['question'] ) && $_POST['question'] != '' ) { global $wpdb; $table_name = $wpdb->prefix . 'questions'; $question = sanitize_text_field( $_POST['question'] ); $user_id = get_current_user_id(); $wpdb->insert( $table_name, array( 'question' => $question, 'user_id' => $user_id ) ); } ?>
同様に、管理者または他のユーザーが質問に回答できるようにするには、次のコード サンプルを追加できます:
<h2>回答问题:</h2> <form action="" method="post"> <textarea name="answer"></textarea> <input type="submit" value="提交答案"> </form> <?php if ( isset( $_POST['answer'] ) && $_POST['answer'] != '' ) { global $wpdb; $table_name = $wpdb->prefix . 'questions'; $answer = sanitize_textarea_field( $_POST['answer'] ); $question_id = 1; // 假设这是问题的ID $wpdb->update( $table_name, array( 'answer' => $answer ), array( 'id' => $question_id ) ); } ?>
これは必要に応じて拡張できる単純な例です。
上記の手順により、WordPress プラグインに質問と回答機能を追加できます。この記事がお役に立てば幸いです。また、アクティブなコミュニティや Web サイトの構築が成功することを願っています。
以上がWordPress プラグインに Q&A 機能を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。