亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net
您需要 登录 才可以下载或查看,没有账号?立即注册
x
WordPress是一款强大而灵活的内容管理系统,而插件则为用户提供了更多可定制的功能。在构建一个活跃的社区或者一个充满互动的网站时,添加问答功能是一个非常好的选择。本文将介绍如何为WordPress插件添加问答功能,并给出一些代码示例。 - 添加前台页面模板
为了让用户提问和查看答案,需要创建相应的前台页面模板。可以在主题的文件夹中创建一个名为template-qa.php的文件,并在其中添加以下代码: - 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函数来创建和更新数据库表。下面是一个示例函数,用于创建问答表:
- 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 );
- }
复制代码
创建自定义数据库表
问答功能需要一个地方来存储问题和答案的数据。可以通过创建自定义的数据库表来实现。以下是一个示例的MySQL数据库表结构:
- <?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
- ) );
- }
- ?>
复制代码 同样地,为了让管理员或其他用户可以回答问题,可以添加以下代码示例:
- <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
- ) );
- }
- ?>
复制代码
请注意,这只是一个简单的示例,还可以根据需要自行扩展。 通过以上步骤,就可以为WordPress插件添加问答功能。这样就可以了
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |