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

هناك فرق كبير بين أن يكون رابط موقعك كالتالي "/post.php?id=2382" و بين أن يكون "/php-functions/"

أقدم لكم كود مخصص بتوليد روابط لطيفة لتضيفوها لبرامج إدارة المحتوى لديكم.

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

1- إزالة الرموز وعلامات الترقيم.

2- تحويل العناوين الإنكليزي إلى الأحرف الصغيرة.

3- إزالة المسافات أو استبدالها بشيء تحدده أنت.

4- إزالة الكلمات المتكررة.

5- إزالة الكلمات الغير مفيدة لمحركات البحث.

الكود :

/* أخذ العنوان المدخل والكلمات الغير مفيدة */
function generate_seo_link($input, $replace = '-', $remove_words = true, $words_array = array()) {
//تصغير الحروف وإزالة المسافات وعلامات الترقيم
$return = trim(preg_replace('/ +/', ' ', preg_replace('/[^a-zA-Z\p{Arabic}0-9\s]/u', '', mb_strtolower($input))));

//إزالة الكلمات الغير مفيدة
//ستعمل فقط إذا أدخلت الكلمات في المصفوفة
if($remove_words) { $return = remove_words($return, $replace, $words_array); }

//استبدال المساحة 
//عادة تكون إما - شخطة أو _ شخط سفلية
//...إرجاع القيمة
return str_replace(' ', $replace, $return);
}

/* سيتم أخذ الكلامات الغير مفيدة */
function remove_words($input,$replace,$words_array = array(),$unique_words = true)
{
//فصل الكلمات بالمساحات
$input_array = explode(' ',$input);

//إنشاء المصفوفة التي سترجع
$return = array();

//حلقة لإزالة الكلمات الغير مفيدة من العنوان
foreach($input_array as $word)
{
    //الكلمات ستضافة إلى المصفوفة...
    if(!in_array($word,$words_array) && ($unique_words ? !in_array($word,$return) : true))
    {
        $return[] = $word;
    }
}

//إعادة الكلمات المفيدة مفصولة بشخطة أو الشيء الذي حددته
return implode($replace,$return);
}

الشرح

تدخل إلى الدالة 4 قيم :

1- المتغير $input نوعه string هو عنوان الصفحة الذي سيحول إلى اسم لطيف.

2- المتغير $replace نوعه string سيستبدل بالفراغ وعادة ما يكون - شخطة أو _ شخطة سفلية.

3- المتغير $remove_words نوعه boolean تحديد إن كنت تريد إزالة الكلمات الغير مفيدة.

4- المتغير $words_array نوعة array مصفوفة الكلمات الغير مفيدة التي سيتم إزالتها من العنوان.

مثال :

$bad_words = array('a','and','the','an','it','is','with','can','of','why','not','و','أو');
echo generate_seo_link('Another day and a half of PHP meetings', '-', true, $bad_words);
//النتيجة :: another-day-half-php-meetings

echo '<br>';
echo generate_seo_link('CSS again?  Why not just PHP?', '-', true, $bad_words);
//النتيجة :: css-again-just-php

echo '<br>';
echo generate_seo_link('A penny saved is a penny earned.', '-', true, $bad_words);
//النتيجة :: penny-saved-earned
echo '<br>';
echo generate_seo_link('كيف حالكم و صحتكم', '-', true, $bad_words);
echo '<br>';
//النتيجة :: كيف-حالكم-صحتكم

وبهذا يصبح بإمكانك إنشاء روابط لطيفة ملائمة لمحركات البحث.