>CMS 튜토리얼 >Word누르다 >WordPress 플러그인에 Q&A 기능을 추가하는 방법

WordPress 플러그인에 Q&A 기능을 추가하는 방법

王林
王林원래의
2023-09-06 10:22:45819검색

WordPress 플러그인에 Q&A 기능을 추가하는 방법

WordPress 플러그인에 Q&A 기능을 추가하는 방법

WordPress는 강력하고 유연한 콘텐츠 관리 시스템이며 플러그인은 사용자에게 더 많은 사용자 정의 기능을 제공합니다. 활발한 커뮤니티나 대화형 웹사이트를 구축할 때 Q&A 기능을 추가하는 것은 좋은 선택입니다. 이 글에서는 WordPress 플러그인에 Q&A 기능을 추가하는 방법을 소개하고 몇 가지 코드 예제를 제공합니다.

  1. 사용자 정의 데이터베이스 테이블 만들기
    Q&A 기능을 사용하려면 질문과 답변 데이터를 저장할 장소가 필요합니다. 이는 사용자 정의 데이터베이스 테이블을 생성하여 달성할 수 있습니다. 다음은 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
);

WordPress에서는 dbDelta 함수를 사용하여 데이터베이스 테이블을 생성하고 업데이트할 수 있습니다. 다음은 질문 및 답변 테이블을 생성하는 함수의 예입니다: 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
    ) );
}
?>

    첫 페이지 템플릿 추가
      사용자가 질문하고 답변을 볼 수 있도록 하려면 해당 첫 페이지 템플릿이 필요합니다. 생성됩니다. 테마 폴더에 template-qa.php라는 파일을 만들고 그 안에 다음 코드를 추가할 수 있습니다.

    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. 백그라운드에서 새 페이지를 만들고 Q&A 템플릿를 페이지 템플릿으로 사용합니다.

    질문 제출 및 답변 제출 기능 추가

    첫 페이지에 사용자가 질문을 제출할 수 있는 양식을 추가합니다. 다음 코드 샘플을 사용할 수 있습니다.

    rrreee

    마찬가지로 관리자나 다른 사용자가 질문에 답할 수 있도록 다음 코드 샘플을 추가할 수 있습니다. 🎜rrreee🎜 이는 단순한 예일 뿐이며 필요에 따라 확장할 수 있습니다. . 🎜🎜위 단계에 따라 WordPress 플러그인에 질문 및 답변 기능을 추가할 수 있습니다. 이 글이 도움이 되었기를 바라며, 활발한 커뮤니티나 웹사이트 구축에 성공하시길 바랍니다! 🎜

위 내용은 WordPress 플러그인에 Q&A 기능을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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