Basit Bir WordPress SSS Eklentisi Nasıl Oluşturulur
"Sıkça Sorulan Sorular" bölümü, müşterilerinize sorularına doğru yanıtları vermek için harika bir araçtır. Bu çok popüler hale geliyor. Ancak sıklıkla SSS'ler premium temaya entegre edilir, peki ya ücretsiz temalar? Burada herhangi bir temayla çalışacak basit bir SSS eklentisi oluşturmaya yönelik bir eğitim bulunmaktadır. Bu eğitim yalnızca temel adımları kapsayacaktır, böylece SSS bölümünü özelleştirebilir ve kendinize ait hale getirebilirsiniz!
Adım 1: Eklentiyi Oluşturun
Başlamak için “wp-content/plugins” klasörünüzde “rc-faq” adında yeni bir klasör oluşturun. Daha sonra bu klasör içerisinde “rc-faq.php” adında yeni bir dosya oluşturun ve şu kodu yerleştirin:
<?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
*/Adım 2: SSS Özel Gönderi Türünü Kaydedin
Artık özel bir gönderi türü kaydetmemiz gerekiyor. Bu bölüme aşina değilseniz Codex'e göz atabilirsiniz.
/*
* 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');
Lütfen application_filters() fonksiyonunun kullanımına dikkat edin. Bu, eklentinin kendisini değiştirmeden desteği ve argümanları değiştirmenize olanak tanır.
3. Adım: SSS'leri Görüntülemek İçin Kısa Kod Oluşturun
Bu adım, ziyaretçinize SSS'leri gösterecek tek parametreli basit bir kısa kod oluşturacağımız yerdir. Buradaki fikir, yalnızca SSS başlığını listelemek ve yanıtları yalnızca başlığa tıklandığında görüntülemektir.
Kısa kodun, gösterilecek öğe sayısını tanımlayan benzersiz bir "sınır" parametresi olacaktır. Elbette kendi niteliklerinizi ekleyebilirsiniz: sipariş, siparişe göre vb.
Ayrıca bu kısa kod, doğrudan kısa kodun içinde yer alan bir javascript pasajı içerir, böylece javascript yalnızca kısa kodun bulunduğu sayfada olduğunuzda yüklenir.
Son olarak SSS içeriğini varsayılan olarak gizleriz ve yalnızca başlığına tıklandığında görüntüleriz.
/*
* 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" ); ?>Ve bu kadar !
Nihai Sonuç
İşte yönetimdeki nihai sonuç:
Ve ziyaretçiler tarafında:
Bu basit ama işe yarıyor ve istediğiniz gibi özelleştirebilirsiniz! Umarım bu eğitimden memnun kalmışsınızdır. Yorumlar bölümünde görüşlerinizi almaktan memnuniyet duyarım!


