ربما هذا المقال لا يحمل الجديد لمن لهم معرفة جيدة بقوالب WordPress و لكنه مهم للمستخدمين (وليس المصممين) ممن يحتاجون إلى تعديلات على القوالب التي يستخدمونها في مواقعهم أو مدوناتهم . و لكنه سيفيد أيضاً بعض المصممين .

و في هذا المقال نتحدث عن مجموعة مهمة من الأكواد الأساسية و المفيدة في أي قالب من قوالب WordPress . يمكن كذلك مراجعة مقال ” التعريف ببيئة عمل قوالب WordPress ” . و سنبدأ من الأبسط إلى الأهم

1- كيفية عرض الوسوم

يمكن في WordPress عرض الوسوم Tags بطريقتين , الطريقة الأولى و هي أن تظهر على شكل قائمة عادية في الموقع و الطريقة الثانية هي أن تظهر على شكل سحابة وسوم Tag Cloud .

- طريقة عرض قائمة الوسوم :

1
<?php the_tags(); ?>

- طريقة عرض سحابة الوسوم :

1
<?php wp_tag_cloud('smallest=8&largest=36&'); ?>

في سحابة الوسوم , قيمتي smallest و largest تحددان حجم الخط بين أصغر كلمة و أكبر كلمة في سحابة الوسوم .

2- عرض المدونات الصديقة Blogroll

و يعرض الكود التالي قائمة بالمواقع أو المدونات الصديقة التي تضيفها من خلال لوحة التحكم و عادة ما يكون الكود في الجزء الجانبي من الموقع Sidebar :

1
<ul> <?php wp_list_bookmarks('title_li=&categorize=0'); ?> </ul>

3- عرض قائمة الصفحات و التصنيفات

1
<ul> <?php wp_list_pages('title_li=الصفحات'); ?> </ul>
1
<ul> <?php wp_list_categories('show_count=0&title_li=');  ?> </ul>

يقوم الكود بعرض الصفحات الثابتة أو التصنيفات الموجودة بموقعك , أحياناً كمصمم تحتاج لعمل قائمة بأعلى الموقع و تريد أن تعرض فيها الصفحات أو التصنيفات بشكل تلقائي دون تدخل أو تعديل منك في حالة إضافة صفحة جديدة أو تصنيف جديد و بالتالي يجب أن تستخدم الأكواد السابقة في ذلك و تطويعها باستخدام CSS في تنسيق عناصر ul, li, a الخاصة بعنصر القائمة .

4- عرض أحدث التدوينات

1
<?php wp_get_archives('type=postbypost&limit=5');  ?>

الكود السابق يقوم بجلب أحدث التدوينات من المدونة كلها و قيمة limit تحدد عدد التدوينات المراد عرضها .
يمكن كذلك القيام بعرض أحدث التدوينات من خلال تصنيف واحد فقط بالموقع بطريقة أخرى كالتالي :

1
2
3
4
5
<?php 
  	$recentposts = get_posts('numberposts=5&category=1');
  	foreach ($recentposts as $post) :
  	setup_postdata($post);  
?>

يمكنك تحديد معرف التصنيف و عدد التدوينات المراد عرضها من المتغيرات numberposts و category

5- عرض التدوينات المثبتة Sticky Posts

في إصدارات WordPress الحديثة , توفر WordPress خاصية التدوينات المثبتة للمستخدمين و لكن ينقصهم طريقة عرضها . يمكن عرض التدوينات المثبتة بإضافة الكود التالي قبل الجزء الخاص بتكوين المحتوى The Loop :

1
2
3
4
5
6
<?php 
	$sticky = get_option('sticky_posts');
	rsort( $sticky );
	$sticky = array_slice( $sticky, 0, 5);
        query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
?>

القيمة 5 يمكن تغييرها حسب عدد العناصر التي تريد عرضها .

6- عرض أشهر التدوينات

يمكن ببساطة عرض أشهر التدوينات و ذلك بناءً على عدد التعليقات المرسلة , حيث يقوم الكود التالي بعرض و ترتيب مشاركات موقعك و عرض الأكثر تعليقاً :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<h2>أشهر التدوينات</h2>
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
 
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>
 
</ul>

7- عرض عدد الكلمات بالتدوينة

الكود التالي سيقوم بعرض عدد الكلمات التي قمت بكتابتها في التدوينة مثل عدد الكلمات الذي يظهر للمستخدم أثناء كتابة التدوينة :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
function count_words($str){
     $words = 0;
     $str = eregi_replace(" +", " ", $str);
     $array = explode(" ", $str);
     for($i=0;$i < count($array);$i++)
 	 {
         if (eregi("[0-9A-Za-zÀ-ÖØ-öø-ÿ]", $array[$i]))
             $words++;
     }
     return $words;
?>
 
عدد الكلمات : <?php echo count_words($post->post_content); ?>

8- استخدام الأكواد المختصرة Shortcodes

في بعض الأحيان نقوم بتكرار شىء ما في تدويناتنا و نقوم بجلب الكود أو المحتوى من تدوينة أخرى , و لكن يمكن بسهولة عمل اختصار لهذا المحتوى و وضعه في تدويناتك الجديدة بكود مختصر و بسيط , و ذلك عن طريق تكوين الكود التالي داخل ملف functions.php :

1
2
3
4
5
6
7
<?php 
function bm() {
    return 'بسم الله الرحمن الرحيم';
}
 
add_shortcode('besm', 'bm');
?>

و بعد ذلك قم بتجربة كتابة الكود المختصر بالشكل التالي : [besm] في تدويناتك و سيظهر لك نص بسم الله الرحمن الرحيم .
إذاً يمكنك تغيير قيمة bm كدالة و قيمة besm كاسم مختصر تستخدمه و تكرر ذلك في كل كود مختصر تريد عرضه في تدويناتك .

9- عرض عدد مشتركي خلاصاتك في FeedBurner بشكل نص

يتيح Feedburner أن تعرض عدد المشتركين في خلاصة الموقع بشكل صورة و لكن إذا أردت أن تعرض الرقم بشكل نصي و تنسيقه بشكل جميل فيمكنك استخدام الكود التالي :

1
2
3
4
5
6
7
8
9
10
11
<?php 
	$fburl="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=feed-id";
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_URL, $fburl);
	$stored = curl_exec($ch);
	curl_close($ch);
	$grid = new SimpleXMLElement($stored);
	$rsscount = $grid->feed->entry['circulation'];
	echo $rsscount;
?>

10- كيفية إضافة مربع الدخول Login Form

إذا كنت ممن يريدون أن يكتب أشخاص آخرين في مدونتك و تتيح لهم التسجيل و الكتابة فأنت بحاجة لهذا الكود لعمل مربع الدخول لموقعك :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php  if (!(current_user_can('level_0'))){ ?>
<h2>دخول</h2>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?/>" size="20" />
<input type="password" name="pwd" id="pwd" size="20" />
<input type="submit" name="submit" value="دخول" class="button" />
    <p>
       <label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> تذكرني</label>
       <input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?/>" />
    </p>
</form>
<a href="<?php echo get_option('home'); ?>/wp-login.php?action=lostpassword">نسيت كلمة المرور ؟</a>
<?php  } else { ?>
<h2>مرحباً بك</h2>
<a href="<?php echo get_option('home'); ?>/wp-admin/">لوحة التحكم</a><br />
<a href="<?php echo wp_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">خروج</a>
<?php } ?>