Heim > CMS-Tutorial > WordDrücken Sie > So fügen Sie Ihrem WordPress-Plugin Q&A-Funktionen hinzu

So fügen Sie Ihrem WordPress-Plugin Q&A-Funktionen hinzu

王林
Freigeben: 2023-09-06 10:22:45
Original
824 Leute haben es durchsucht

So fügen Sie Ihrem WordPress-Plugin Q&A-Funktionen hinzu

So fügen Sie dem WordPress-Plugin Q&A-Funktionen hinzu

WordPress ist ein leistungsstarkes und flexibles Content-Management-System, während Plugins Benutzern anpassbarere Funktionen bieten. Beim Aufbau einer aktiven Community oder einer interaktiven Website ist das Hinzufügen einer Frage-und-Antwort-Funktion eine gute Option. In diesem Artikel wird erläutert, wie Sie einem WordPress-Plugin eine Frage-und-Antwort-Funktionalität hinzufügen, und es werden einige Codebeispiele aufgeführt.

  1. Erstellen Sie benutzerdefinierte Datenbanktabellen
    Die Frage-und-Antwort-Funktion erfordert einen Ort zum Speichern von Frage- und Antwortdaten. Dies kann durch die Erstellung einer benutzerdefinierten Datenbanktabelle erreicht werden. Das Folgende ist ein Beispiel für eine MySQL-Datenbanktabellenstruktur:
CREATE TABLE wp_questions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    question VARCHAR(255),
    answer TEXT,
    user_id INT,
    create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Nach dem Login kopieren

In WordPress können Sie die Funktion dbDelta verwenden, um Datenbanktabellen zu erstellen und zu aktualisieren. Im Folgenden finden Sie eine Beispielfunktion zum Erstellen einer Frage- und Antworttabelle: 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 );
}
Nach dem Login kopieren
  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(); 
?>
Nach dem Login kopieren

在后台,创建一个新的页面,并选择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
    ) );
}
?>
Nach dem Login kopieren

    Eine Startseitenvorlage hinzufügen
      Damit Benutzer Fragen stellen und Antworten anzeigen können, muss eine entsprechende Startseitenvorlage vorhanden sein erstellt werden. Sie können im Ordner des Themes eine Datei mit dem Namen template-qa.php erstellen und den folgenden Code hinzufügen:

    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
          ) );
      }
      ?>
      Nach dem Login kopieren
      Erstellen Sie im Hintergrund eine neue Seite und wählen Sie Q&A-Vorlage als Seitenvorlage. <p></p>Fügen Sie die Funktion zum Einreichen von Fragen und Antworten hinzu. <p>Fügen Sie auf der Startseite ein Formular hinzu, damit Benutzer Fragen einreichen können. Das folgende Codebeispiel kann verwendet werden: </p> <p>rrreee</p> Um Administratoren oder anderen Benutzern die Beantwortung von Fragen zu ermöglichen, kann außerdem das folgende Codebeispiel hinzugefügt werden: 🎜rrreee🎜 Bitte beachten Sie, dass dies nur ein einfaches Beispiel ist und bei Bedarf erweitert werden kann . 🎜🎜Indem Sie die oben genannten Schritte befolgen, können Sie die Frage- und Antwortfunktion zum WordPress-Plug-in hinzufügen. Ich hoffe, dieser Artikel war hilfreich und wünsche Ihnen viel Erfolg beim Aufbau einer aktiven Community oder Website! 🎜

      Das obige ist der detaillierte Inhalt vonSo fügen Sie Ihrem WordPress-Plugin Q&A-Funktionen hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage