ホームページ > 記事 > CMS チュートリアル > 質疑応答システムを自動生成するWordPressプラグインを開発する方法
質問と回答システムを自動的に生成する WordPress プラグインを開発する方法
はじめに:
現代のインターネット時代では、質問と回答の Web サイトにはますます人気が高まります。この記事では、ユーザーの質問と回答のニーズに応えるために、質問と回答システムを自動生成する WordPress プラグインの開発方法を紹介します。このプラグインを使用すると、Web サイトをよりインタラクティブで魅力的なものにする Q&A プラットフォームを簡単に作成できます。
ステップ 1: カスタム投稿タイプを作成する (Post Type)
WordPress では、カスタム投稿タイプはデフォルトの投稿やページを拡張できる機能です。 「Question」というカスタム データ タイプを作成する必要があります。
function create_question_post_type() { $labels = array( 'name' => 'Questions', 'singular_name' => 'Question', 'add_new' => 'Add New', 'add_new_item' => 'Add New Question', 'edit_item' => 'Edit Question', 'new_item' => 'New Question', 'view_item' => 'View Question', 'search_items' => 'Search Questions', 'not_found' => 'No questions found', 'not_found_in_trash' => 'No questions found in trash', 'parent_item_colon' => '', 'menu_name' => 'Questions' ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'questions'), 'supports' => array('title', 'editor', 'author') ); register_post_type('question', $args); } add_action('init', 'create_question_post_type');
ステップ 2: 質問と回答のメタ フィールドを作成する (メタ フィールド)
質問のカテゴリ、回答の作成者など、追加の情報フィールドを質問と回答に追加する必要があります。 、など。メタフィールドを追加すると、質問と回答を編集するときにこれらの追加の情報フィールドを追加して管理できます。
function add_question_meta_fields() { add_meta_box('question_category', 'Category', 'question_category_callback', 'question', 'side', 'default'); } function question_category_callback($post) { $value = get_post_meta($post->ID, 'question_category', true); echo '<input type="text" name="question_category" value="' . esc_attr($value) . '" />'; } function save_question_meta_fields($post_id) { if (array_key_exists('question_category', $_POST)) { update_post_meta( $post_id, 'question_category', sanitize_text_field($_POST['question_category']) ); } } add_action('add_meta_boxes_question', 'add_question_meta_fields'); add_action('save_post_question', 'save_question_meta_fields');
ステップ 3: Q&A システム テンプレートを作成する
質問と回答を表示するには、Q&A システム テンプレートを作成する必要があります。これは、WordPress テンプレート ファイル (例: single-question.php
) を使用して行うことができます。
<?php /* Template name: Question Template */ ?> <?php get_header(); ?> <div id="primary"> <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> <?php $answers = get_post_meta(get_the_ID(), 'answers', true); ?> <?php if (!empty($answers)): ?> <section class="answers"> <h2>Answers</h2> <ul> <?php foreach ($answers as $answer): ?> <li><?php echo $answer; ?></li> <?php endforeach; ?> </ul> </section> <?php endif; ?> </article> <?php endwhile; ?> </main> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
ステップ 4: Q&A の送信と表示フォームの作成
ユーザーが質問と回答を送信してデータベースに保存できるフロントエンド フォームを作成する必要があります。次に、これらの質問と回答をテンプレートに表示する必要があります。
function question_form_shortcode() { ob_start(); ?> <form id="question-form" method="post"> <label for="question-title">Question Title</label> <input type="text" id="question-title" name="question-title" required> <label for="question-content">Question Content</label> <textarea id="question-content" name="question-content" required></textarea> <label for="answer-content">Your Answer</label> <textarea id="answer-content" name="answer-content" required></textarea> <input type="submit" value="Submit"> </form> <?php return ob_get_clean(); } add_shortcode('question_form', 'question_form_shortcode'); function save_question_and_answer() { if (isset($_POST['question-title']) && isset($_POST['question-content']) && isset($_POST['answer-content'])) { $question_title = sanitize_text_field($_POST['question-title']); $question_content = wp_kses_post($_POST['question-content']); $answer_content = wp_kses_post($_POST['answer-content']); $question_id = wp_insert_post(array( 'post_title' => $question_title, 'post_content' => $question_content, 'post_type' => 'question', 'post_status' => 'publish' )); $answers = get_post_meta($question_id, 'answers', true); $answers[] = $answer_content; update_post_meta($question_id, 'answers', $answers); } } add_action('init', 'save_question_and_answer');
結論:
この記事のガイダンスに従って、質問と回答システムを自動的に生成する WordPress プラグインを開発できます。このプラグインは、対話性と魅力を高める Q&A プラットフォームを簡単に作成するのに役立ちます。ユーザーや Web サイトに合わせて機能を追加したり、スタイルをカスタマイズしたりできます。あなたの開発が成功することを祈っています!
以上が質疑応答システムを自動生成するWordPressプラグインを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。