Rumah >Tutorial CMS >WordTekan >Bagaimana untuk menambah fungsi Soal Jawab pada pemalam WordPress anda

Bagaimana untuk menambah fungsi Soal Jawab pada pemalam WordPress anda

王林
王林asal
2023-09-06 10:22:45820semak imbas

Bagaimana untuk menambah fungsi Soal Jawab pada pemalam WordPress anda

Cara menambah fungsi Soal Jawab pada pemalam WordPress

WordPress ialah sistem pengurusan kandungan yang berkuasa dan fleksibel, manakala pemalam menyediakan pengguna dengan ciri yang lebih boleh disesuaikan. Apabila membina komuniti aktif atau tapak web interaktif, menambah ciri Soal Jawab adalah pilihan yang bagus. Artikel ini akan memperkenalkan cara menambah fungsi Soal Jawab pada pemalam WordPress dan memberikan beberapa contoh kod.

  1. Buat jadual pangkalan data tersuai
    Ciri Soal Jawab memerlukan tempat untuk menyimpan data untuk soalan dan jawapan. Ini boleh dicapai dengan mencipta jadual pangkalan data tersuai. Berikut ialah contoh struktur jadual pangkalan data MySQL:
CREATE TABLE wp_questions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    question VARCHAR(255),
    answer TEXT,
    user_id INT,
    create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Dalam WordPress, anda boleh menggunakan fungsi dbDelta untuk mencipta dan mengemas kini jadual pangkalan data. Berikut ialah contoh fungsi untuk mencipta jadual soalan dan jawapan: 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 );
}
  1. 添加前台页面模板
    为了让用户提问和查看答案,需要创建相应的前台页面模板。可以在主题的文件夹中创建一个名为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 Template

<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
    ) );
}
?>

    Tambah templat muka depan
      Untuk membolehkan pengguna bertanya soalan dan melihat jawapan, templat muka depan yang sepadan perlu dicipta. Anda boleh mencipta fail yang dipanggil template-qa.php dalam folder tema dan menambah kod berikut di dalamnya:

    1. <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
          ) );
      }
      ?>
    2. Di latar belakang, buat halaman baharu dan pilih Q&A Template sebagai templat halaman.

    Tambahkan fungsi penyerahan soalan dan penyerahan jawapan

    Di muka depan, tambahkan borang untuk membolehkan pengguna menghantar soalan. Contoh kod berikut boleh digunakan:

    rrreee

    Begitu juga, untuk membenarkan pentadbir atau pengguna lain menjawab soalan, contoh kod berikut boleh ditambah: 🎜rrreee🎜 Sila ambil perhatian bahawa ini hanyalah contoh mudah dan boleh dilanjutkan mengikut keperluan . 🎜🎜Dengan mengikuti langkah di atas, anda boleh menambah fungsi soal jawab pada pemalam WordPress. Saya harap artikel ini berguna dan saya doakan anda berjaya membina komuniti atau laman web yang aktif! 🎜

Atas ialah kandungan terperinci Bagaimana untuk menambah fungsi Soal Jawab pada pemalam WordPress anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn