如何为WordPress插件添加问答功能

来源:undefined 2024-12-20 08:30:57 1012

如何为WordPress插件添加问答功能

WordPress是一款强大而灵活的内容管理系统,而插件则为用户提供了更多可定制的功能。在构建一个活跃的社区或者一个充满互动的网站时,添加问答功能是一个非常好的选择。本文将介绍如何为WordPress插件添加问答功能,并给出一些代码示例。

创建自定义数据库表

问答功能需要一个地方来存储问题和答案的数据。可以通过创建自定义的数据库表来实现。以下是一个示例的MySQL数据库表结构:

1

2

3

4

5

6

7

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函数来创建和更新数据库表。下面是一个示例函数,用于创建问答表:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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

}

登录后复制

添加前台页面模板

为了让用户提问和查看答案,需要创建相应的前台页面模板。可以在主题的文件夹中创建一个名为template-qa.php的文件,并在其中添加以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?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-&lt;?php the_ID(); ?&gt;" post_class>&gt;

<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-&gt;get_results( "SELECT * FROM $table_name ORDER BY create_date DESC" );

foreach ( $questions as $question ) {

echo <h2> . $question-&gt;question . </h2>;

echo <p> . $question-&gt;answer . </p>;

}

?&gt;

</main>

</div>

<?php get_sidebar();

get_footer();

?>

登录后复制

在后台,创建一个新的页面,并选择Q&A Template作为页面模板。

添加问题提交和答案提交的功能

在前台页面中,添加一个表单,让用户可以提交问题。可以使用以下代码示例:

1

登录后复制
问题: 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 ) ); } ?>

同样地,为了让管理员或其他用户可以回答问题,可以添加以下代码示例:

1

<h2>回答问题:</h2>

登录后复制
prefix . questions; $answer = sanitize_textarea_field( $_POST@[answer] ); $question_id = 1; // 假设这是问题的ID $wpdb->update( $table_name, array( answer => $answer ), array( id => $question_id ) ); } ?>

请注意,这只是一个简单的示例,还可以根据需要自行扩展。

通过以上步骤,就可以为WordPress插件添加问答功能。希望这篇文章能对你有所帮助,祝你在构建一个活跃的社区或者网站时取得成功!

以上就是如何为WordPress插件添加问答功能的详细内容,更多请关注php中文网其它相关文章!

-->

最新文章