Heim  >  Artikel  >  CMS-Tutorial  >  So entwickeln Sie ein WordPress-Plugin, das automatisch ein Frage- und Antwortsystem generiert

So entwickeln Sie ein WordPress-Plugin, das automatisch ein Frage- und Antwortsystem generiert

王林
王林Original
2023-09-05 15:52:461204Durchsuche

So entwickeln Sie ein WordPress-Plugin, das automatisch ein Frage- und Antwortsystem generiert

So entwickeln Sie ein WordPress-Plugin, das automatisch ein Q&A-System generiert

Einführung:
Im modernen Internetzeitalter werden Q&A-Websites immer beliebter. Um den Anforderungen der Benutzer an Fragen und Antworten gerecht zu werden, wird in diesem Artikel erläutert, wie Sie ein WordPress-Plugin entwickeln, das automatisch ein Frage- und Antwortsystem generiert. Mit diesem Plugin können Sie ganz einfach eine Q&A-Plattform erstellen, um Ihre Website interaktiver und attraktiver zu gestalten.

Schritt 1: Erstellen Sie einen benutzerdefinierten Beitragstyp (Beitragstyp)
In WordPress ist ein benutzerdefinierter Beitragstyp eine Funktion, die die Standardbeiträge und -seiten erweitern kann. Wir müssen einen benutzerdefinierten Datentyp namens „Frage“ erstellen.

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');

Schritt 2: Metafelder für Fragen und Antworten erstellen
Wir müssen den Fragen und Antworten einige zusätzliche Informationsfelder hinzufügen, z. B. die Kategorie der Frage, den Autor der Antwort usw. Durch das Hinzufügen von Metafeldern können wir diese zusätzlichen Informationsfelder hinzufügen und verwalten, wenn wir Fragen und Antworten bearbeiten.

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');

Schritt 3: Erstellen Sie eine Q&A-Systemvorlage
Wir müssen eine Q&A-Systemvorlage erstellen, um Fragen und Antworten anzuzeigen. Dies können wir mithilfe der Vorlagendateien von WordPress erreichen (z. B. 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(); ?>

Schritt vier: Formular zum Senden und Anzeigen von Fragen und Antworten erstellen
Wir müssen ein Front-End-Formular erstellen, über das Benutzer Fragen und Antworten einreichen und diese in der Datenbank speichern können. Diese Fragen und Antworten müssen wir dann in der Vorlage anzeigen.

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');

Fazit:
Mit der Anleitung dieses Artikels können Sie ein WordPress-Plugin entwickeln, das automatisch ein Frage- und Antwortsystem generiert. Mit diesem Plug-in können Sie ganz einfach eine Frage-und-Antwort-Plattform erstellen, um die Interaktivität und Attraktivität zu erhöhen. Sie können zusätzliche Funktionen hinzufügen und Stile anpassen, um den Anforderungen Ihrer Benutzer und Ihrer Website gerecht zu werden. Ich wünsche Ihnen viel Erfolg bei Ihrer Entwicklung!

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein WordPress-Plugin, das automatisch ein Frage- und Antwortsystem generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn