نماد سایت بیگ تم

ساخت دانشنامه آزاد (ویکی) با وردپرس

سلام به همه ی دوستان عزیز بیگ تمی. توی این مقاله، با یه آموزش خیلی کاربردی در خدمتتون هستم. بذارین با چند سوال شروع کنم؟ دوست دارین یه بخش مستندات به سایتتون اضافه کنین؟ یا میخواین یه دانشنامه ی آزاد توی سایت وردپرسیتون داشته باشین؟ توی این مقاله میخوایم این خواسته ها رو برآورده کنیم. پس با بیگ تم همراه باشین.

ساخت دانشنامه آزاد (ویکی) با وردپرس

خب اول از همه باید ببنیم چند راه برای انجام این کار وجود داره و بعد برحسب علاقه، یه راه رو انتخاب کنیم. برای ساخت یک دانشنامه آزاد با وردپرس، سه راه وجود دارد:

  1. استفاده از یک پوسته ی مخصوص ساخت دانشنامه
  2. استفاده از یک پلاگین مخصوص ساخت دانشنامه
  3. استفاده از کدنویسی (راهی که برای هر کاری وجود داره!)

خب هر کدوم از راه هایی که گفتم یه مزایا و یه معایبی دارن که موقعی توضیح دادن هر روش، متوجه میشین و میتونید مناسب ترین روش برای خودتون رو انتخاب کنین. خب آماده این؟ پس بزنید بریم!


1- استفاده از یک پوسته ی مخصوص ساخت دانشنامه

یکی از ساده ترین راه ها برای ساخت یم دانشنامه یا ویکی، استفاده از یک پوسته ی مخصوص اینکاره. خب پوسته های زیادی وجود داره، اما ما پوسته ی KnowHow رو پیشنهاد می کنیم که بهترین پوسته در زمینه ی دانشنامه هست. بهترین روش برای راه اندازی اینه که وردپرس رو در یک ساب دامین یا شاخه، مثلا به این صورت support.yoursite.com یا yoursite.com/knowledgebase نصب کنین. بعد از نصب و فعالسازی این پوسته، کار تمومه و شما یک دانشنامه دارین!

مهم ترین عیب استفاده از پوسته ی دانشنامه اینه که شما نمی تونین این پوسته ها رو در سایت اصلی خودتون استفاده کنین، یعنی مجبورین اونا روی یک ساب دامین یا یک شاخه ی جداگانه نصب کنین. چرا؟ چون این پوسته ها با هویت اصلی سایت شما جور نیستن و شما هم قطعا نمیخواین صفحه ی اول سایتتون، به صورت یک دانشنامه باشه! با همه ی این تفاسیر سایت های زیادی، از این پوسته های دانشنامه ای روی ساب دامین خودشون استفاده می کنن.


2- استفاده از یک پلاگین مخصوص ساخت دانشنامه

میرسیم به روش دوم، یعنی موقعی که شما بخواین یه دانشنامه رو به همین سایتی که الان دارین اضافه کنین. خب ساده ترین راه، استفاده از یه پلاگین مخصوص این کاره. بازم چند پلاگین وجود داره، اما ما Knowledge Base by PressApps پیشنهاد می کنیم که دمو هم داره و بنابراین حسابی به انتخابتون کمک میکنه.

حالا باید این پلاگین رو نصب و فعال کنید. بعد از فعالسازی، یک تب به نام “Knowledge Base” به قسمت مدیریت وردپرستون اضافه میشه.

این پلاگین، خودش نوشته و دسته بندی و برچسب داره (یعنی جدا از نوشته، دسته بندی و برچسب پیش فرض وردپرس) که به شما اجازه میده مستنداتتون رو سازمان یافته کنین. بهترین بخش این پلاگین، اینه که شما می تونین اونو به سایت اصلیتون اضافه کنین (برخلاف روش شماره 1) و با محتوای سایتتون هماهنگش کنین.این پلاگین، امکانات دیگه ای هم داره، مثلاً سیستم رای دهی مخصوص اعضا یا عموم، ابزارک های سفارشی، عمل کردن به صورت کشیدن و رها کردن (drag-drop). خب حالا عیبش چیه؟ عیبی نداره، فقط گرونه! (20 دلار)


3- استفاده از کدنویسی

رسیدیم به بخش ارزون، ولی یه کم پرزحمت تر. البته نگران نباشین، قرار نیست کوه جا به جا کنین، یه چند تا کپی، پیست سادس!! خب قبل از شروع، اول از سایت عزیزتون یه بک آپ بگیرین تا ادامه ی کار رو قدم به قدم براتون توضیح بدم.

1- اول پلاگین Knowledgebase CPT رو نصب و فعال کنین. لابد میپرسین این پلاگین چیکار می کنه؟ عرضم به حضورتون این پلاگین یه نوع نوشته ی سفارشی به نام knowledge_base و یه طبقه بندی به نام section ایجاد میکنه. (اگه یادتون باشه توی روش قبلی هم پلاگین، نوشته های و دسته های مخصوص به خودشو داشت) خب این کار باعث میشه که شما به راحتی بتونین مقالات دانشنامتون رو اضافه و رو دسته بندی کنین.

خب، حالا باید این مقالات و دسته بندی ها رو توی سایتمون نشون بدیم دیگه، اینجا باید بریم سراغ کد! برای شروع کد زیر رو در فایل  functions.php پوسته فعال سایتتون اضافه کنین. این کد، هر مقاله ای رو در دسته بندی ای که شما براش مشخص کردین، قرار می ده.

function wpb_knowledgebase() {
	// Get Knowledge Base Sections
	$kb_sections = get_terms('section','orderby=name&hide_empty=0');
	// For each knowledge base section
	foreach ($kb_sections as $section) :
	$return .= '<div class="kb_section">';
	// Display Section Name
	$return .= '<h4 class="kb-section-name"><a href="'. get_term_link( $section ) .'" title="'. $section->name .'" >'. $section->name .'</a></h4><ul class="kb-articles-list">';

	// Fetch posts in the section
	$kb_args = array(
		'post_type' => 'knowledge_base',
		'posts_per_page'=>-1,
		'tax_query' => array(
			array(
				'taxonomy' => 'section',
				'terms'    => $section,
			)		,
		),
	);

	$the_query = new WP_Query( $kb_args );
		if ( $the_query->have_posts() ) :
			while ( $the_query->have_posts() ) : $the_query->the_post();
				$return .=  '<li class="kb-article-name">';
				$return .=  '<a href="'. get_permalink( $the_post->ID ) .'" rel="bookmark" title="'. get_the_title( $the_post->ID ) .'">'. get_the_title( $the_post->ID ) .'</a>';
				$return .=  '</li>';
	 		endwhile;
	wp_reset_postdata();
		 else :
	 			$return .= '<p>No Articles Found</p>';
	 	endif;
	$return .=  '</ul></div>';
	endforeach;
	return $return;
}
// Create shortcode
add_shortcode('knowledgebase', 'wpb_knowledgebase');

قدم بعدی اینه که یک برگه ی وردپرس بسازین و شورت کد [knowledgebase] رو توش قرار بدین. حالا این برگه رو ذخیره کنین و دکمه ی پیش نمایش رو بزنین.صفحه ی زیر رو خواهید دید:

البته این صفحه خیلی ساده به نظر میرسه، اما پس CSS برا چی خلق شده؟ زیبا کردن! پس کد CSS زیر رو در فایل style.css قالبتون اضافه کنین.

.kb_section {
float: left;
width: 280px;
max-width: 280px;
margin: 10px;
background-color: #f5f5f5;
border: 1px solid #eee;
}
h4.kb-section-name {
background-color: #eee;
margin: 0;
padding: 5px;
}
ul.kb-section-list {
list-style-type: none;
list-style: none;
display: inline;
}
li.kb-section-name {
list-style-type: none;
display: inline;
}
ul.kb-article-list {
list-style-type: none;
list-style: none;
}
li.kb-article-name {
list-style-type: none;
}
div.kb_section:nth-of-type(3n+1) {clear:left;}
div.kb_section:nth-of-type(3n+3) {}

حالا صفحتون به شکل زیر درمیاد که البته به صورت چپ چین هست و در صورتی که قالبتون راست چین نیست، میتونید خودتون اینکار رو انجام بدین.

دسته بنیدی هایی که درست کردین، به صورت پیش فرض، به صورت الفبایی مرتب و نمایش داده میشن. اما اگه بخواین ترتیب این بخش ها رو عوض کنین، می تونید پلاگین Custom Taxonomy Order NE رو نصب کنین که به شما این امکان رو میده با درگ-دراپ کردن، ترتیب بخش ها رو تغییر بدین.


خب اینم از آموزش امروز ، امیدوارم براتون مفید واقع شده باشه.


	
خروج از نسخه موبایل