Cara Membuat Pemalam Soalan Lazim WordPress Mudah
Bahagian "Soalan Lazim" ialah alat yang hebat untuk memberi pelanggan anda jawapan yang betul kepada soalan mereka. Itu menjadi sangat popular. Tetapi selalunya Soalan Lazim disepadukan dalam tema premium, tetapi bagaimana pula dengan tema percuma? Berikut ialah tutorial untuk mencipta pemalam FAQ mudah yang akan berfungsi dengan mana-mana tema. Tutorial ini akan merangkumi hanya langkah asas supaya anda boleh menyesuaikan bahagian Soalan Lazim dan menjadikannya milik anda sendiri!
Langkah 1: Cipta Plugin
Untuk memulakan, buat folder baharu dalam folder "wp-content/plugins" anda yang dipanggil "rc-faq". Kemudian buat fail baharu dalam folder ini yang dipanggil "rc-faq.php" dan letakkan kod ini:
<?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
*/Langkah 2: Daftar Soalan Lazim Jenis Catatan Tersuai
Kami kini perlu mendaftarkan jenis siaran tersuai. Jika anda tidak biasa dengan bahagian ini, anda boleh melihat ke 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');
Sila ambil perhatian penggunaan fungsi apply_filters(). Ini membolehkan anda mengubah suai sokongan dan hujah tanpa mengubah suai pemalam itu sendiri.
Langkah 3: Cipta Kod Pendek Untuk Memaparkan Soalan Lazim
Langkah ini ialah di mana kami akan mencipta kod pendek ringkas dengan hanya satu parameter yang akan menunjukkan Soalan Lazim kepada pelawat anda. Ideanya adalah untuk menyenaraikan tajuk Soalan Lazim sahaja dan memaparkan jawapan hanya apabila tajuk itu diklik.
Kod pendek akan mempunyai parameter "had" unik yang mentakrifkan bilangan item untuk ditunjukkan. Sudah tentu anda boleh menambah atribut anda sendiri: order, order by, etc...
Selain itu, kod pendek ini mengandungi coretan javascript yang disertakan terus dalam kod pendek itu sendiri supaya javascript hanya dimuatkan apabila anda berada di halaman yang mempunyai kod pendek.
Akhirnya kami menyembunyikan secara lalai kandungan FAQ dan memaparkannya hanya apabila tajuknya diklik.
/*
* 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" ); ?>Dan itu sahaja!
Keputusan Akhir
Berikut adalah keputusan akhir dalam pentadbiran:
Dan di sisi pelawat:
Itu mudah tetapi ia berfungsi dan anda boleh menyesuaikannya seperti yang anda mahu! Saya harap anda menikmati tutorial ini, saya ingin mendapatkan maklum balas anda di bahagian komen!


