当我们安装主题和插件时,都会向…
“常见问题”部分是为您的客户提供正确答案的好工具。这变得非常流行。但是通常,常见问题解答都集成在高级主题中,但是免费主题又如何呢?这是创建可与任何主题配合使用的简单FAQ插件的教程。本教程将仅介绍基本步骤,因此您可以自定义FAQ部分,并自行制作!
步骤1:建立外挂程式
首先,在“ wp-content / plugins”文件夹中创建一个名为“ rc-faq”的新文件夹。然后在此文件夹中创建一个名为“ rc-faq.php”的新文件,并放置以下代码:
<?php
/*
Plugin Name: RC Faq
Plugin URL: http://remicorson.com/rc-faq
Description: A simple FAQ plugin
Version: 1.0
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
*/
步骤2:注册FAQ自定义帖子类型
现在,我们需要注册一个自定义帖子类型。如果您不熟悉此部分,可以查看Codex。
/*
* Register CPT rc_faq
*
*/
function rc_faq_setup_post_types() {
$faq_labels = apply_filters( 'rc_faq_labels', array(
'name' => 'FAQs',
'singular_name' => 'FAQ',
'add_new' => __('Add New', 'rc_faq'),
'add_new_item' => __('Add New FAQ', 'rc_faq'),
'edit_item' => __('Edit FAQ', 'rc_faq'),
'new_item' => __('New FAQ', 'rc_faq'),
'all_items' => __('All FAQs', 'rc_faq'),
'view_item' => __('View FAQ', 'rc_faq'),
'search_items' => __('Search FAQs', 'rc_faq'),
'not_found' => __('No FAQs found', 'rc_faq'),
'not_found_in_trash' => __('No FAQs found in Trash', 'rc_faq'),
'parent_item_colon' => '',
'menu_name' => __('FAQs', 'rc_faq'),
'exclude_from_search' => true
) );
$faq_args = array(
'labels' => $faq_labels,
'public' => true,
'publicly_queryable'=> true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'supports' => apply_filters('rc_faq_supports', array( 'title', 'editor' ) ),
);
register_post_type( 'rc_faq', apply_filters( 'rc_faq_post_type_args', $faq_args ) );
}
add_action('init', 'rc_faq_setup_post_types');
请注意apply_filters()函数的使用。这使您可以修改支持和参数,而无需修改插件本身。
步骤3:建立简码以显示常见问题
在这一步中,我们将创建仅包含一个参数的简单短代码,该参数将向您的访客显示常见问题。想法是仅列出FAQ标题,并且仅在单击标题时才显示答案。
简码将具有一个唯一的“ limit”参数,该参数定义要显示的项目数。当然,您可以添加自己的属性:order,order by等…
另外,此简码包含直接包含在简码本身内的javascript代码段,以便仅当您在具有简码的页面上时才加载javascript。
最后,默认情况下,我们隐藏FAQ内容,仅在单击其标题时才显示。
/* * Add [rc_faq limit="-1"] shortcode * */ function rc_faq_shortcode( $atts, $content = null ) { extract(shortcode_atts(array( "limit" => '' ), $atts ) ); // Define limit if ( $limit ) { $posts_per_page = $limit; } else { $posts_per_page = '-1'; } ob_start(); // Create the Query $post_type = 'rc_faq'; $orderby = 'menu_order'; $order = 'ASC'; $query = new WP_Query( array ( 'post_type' => $post_type, 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, 'order' => $order, 'no_found_rows' => 1 ) ); //Get post type count $post_count = $query->post_count; $i = 1; // Displays FAQ info if ( $post_count > 0) : // Loop while ($query->have_posts()) : $query->the_post(); ?> <h3 class="rc_faq_title"><a href="#" onclick="rc_faq_toggle('rc_faq_<?php echo get_the_ID(); ?>');"><?php the_title(); ?></a></h3> <p id="rc_faq_<?php echo get_the_ID(); ?>" style="display: none;"><?php echo get_the_content(); ?></p> <?php $i++; endwhile; endif; // Reset query to prevent conflicts wp_reset_query(); ?> <script type="text/javascript"> <!-- function rc_faq_toggle(id) { var e = document.getElementById(id); e.style.display = ((e.style.display!='none') ? 'none' : 'block'); } //--> </script> <?php return ob_get_clean(); } add_shortcode( "rc_faq", "rc_faq_shortcode" ); ?>
就是这样!
最终结果
这是管理的最终结果:
在访客方面:
这很简单,但是可以工作,您可以根据需要自定义它!希望您喜欢本教程,希望在评论部分获得您的反馈!
微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!
需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!