Content Marketing

صياغة مقتطفات في PHP أو WordPress: تقنيات عدد الكلمات والجمل والفقرات

إنشاء مقتطفات في PHP هي مهمة شائعة في إدارة المحتوى وتطوير مواقع الويب. المقتطف هو نسخة مختصرة من جزء أطول من المحتوى، وغالبًا ما يستخدم لتقديم معاينة أو ملخص. قد يحتاج مطورو PHP إلى إنشاء مقتطفات بناءً على عدد الكلمات أو الجمل أو الفقرات. تستكشف هذه المقالة طرق تحقيق ذلك، إلى جانب أفضل الممارسات ومعالجة الحالات التي يتجاوز فيها عدد العدد طول المحتوى.

مقتطف من عدد الكلمات

يتضمن إنشاء مقتطف حسب عدد الكلمات اقتطاع المحتوى بعد عدد معين من الكلمات.

function excerptByWordCount($content, $wordCount) {
    $words = explode(' ', $content);
    if (count($words) > $wordCount) {
        $words = array_slice($words, 0, $wordCount);
        $content = implode(' ', $words);
    }
    return $content;
}

الاستخدام:

// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50); 

أفضل الممارسات والتعامل مع الأعداد الزائدة:

  • التحقق من عدد الكلمات: قبل الاقتطاع، تحقق مما إذا كان عدد كلمات المحتوى الأصلي يتجاوز طول المقتطف المطلوب. إذا لم يكن الأمر كذلك، قم بإرجاع المحتوى الأصلي.
  • تجنب كسر الكلمات: تأكد من اكتمال الكلمة الأخيرة في المقتطف للحفاظ على سهولة القراءة.
  • إضافة علامة الحذف: بشكل اختياري، قم بإضافة علامة الحذف (...) في النهاية إذا تم اقتطاع المحتوى.

مقتطف من عدد الجمل

يتضمن إنشاء مقتطفات حسب عدد الجمل الاحتفاظ بعدد معين من الجمل من المحتوى.

function excerptBySentenceCount($content, $sentenceCount) {
    $sentences = explode('.', $content);
    if (count($sentences) > $sentenceCount) {
        $sentences = array_slice($sentences, 0, $sentenceCount);
        $content = implode('. ', $sentences) . '.';
    }
    return $content;
}

الأستعمال

// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3); 

لتحديث excerptBySentenceCount لتضمين جمل مع أي علامات ترقيم في النهاية (وليس فقط نقاط)، يمكنك تعديل الوظيفة لتقسيم المحتوى بواسطة تعبير عادي يطابق أي علامات ترقيم نموذجية في نهاية الجملة، مثل النقطة أو علامة التعجب أو علامة الاستفهام. وإليك كيفية القيام بذلك في PHP:

function excerptBySentenceCount($content, $sentenceCount) {
    // Use a regular expression to split the content by sentence-ending punctuation
    $sentences = preg_split('/(?<=[.!?])\s+/', $content, -1, PREG_SPLIT_NO_EMPTY);

    if (count($sentences) > $sentenceCount) {
        $sentences = array_slice($sentences, 0, $sentenceCount);
        $content = implode(' ', $sentences);
        // Check the last character to ensure it ends with punctuation
        if (!preg_match('/[.!?]$/', $content)) {
            $content .= '.';
        }
    }
    return $content;
}

تستخدم هذه الوظيفة preg_split بتعبير عادي (رجإكس) /(?<=[.!?])\s+/ الذي يقسم النص في مسافات (\s+) التي تتبع النقطة أو علامة التعجب أو علامة الاستفهام ([.!?]). ال (?<=...) عبارة عن تأكيد إيجابي للخلف يتحقق من وجود علامات الترقيم في نهاية الجملة دون تضمينها في القسمة. ال PREG_SPLIT_NO_EMPTY يضمن العلم إرجاع القطع غير الفارغة فقط.

وأخيرًا، تتحقق الوظيفة مما إذا كان الحرف الأخير من المحتوى الناتج هو علامة ترقيم في نهاية الجملة. إذا لم يكن الأمر كذلك، فإنه يضيف نقطة للحفاظ على علامات الترقيم المناسبة في نهاية المقتطف.

أفضل الممارسات والتعامل مع الأعداد الزائدة:

  • الكشف الصحيح عن الجملة: استخدم فترة متبوعة بمسافة لتقسيم الجمل. وهذا يتجنب التقسيم إلى فترات مستخدمة في الاختصارات.
  • التحقق من عدد الجمل: كما هو الحال مع عدد الكلمات، تحقق مما إذا كان عدد الجمل في المحتوى الأصلي كافيًا.
  • الحفاظ على علامات الترقيم: تأكد من أن المقتطف ينتهي بعلامات الترقيم المناسبة، وعادة ما تكون نقطة.

مقتطف من عدد الفقرات

يتضمن إنشاء مقتطفات حسب عدد الفقرات اقتطاع المحتوى بعد عدد معين من الفقرات.

function excerptByParagraphCount($content, $paragraphCount) {
    $paragraphs = explode("\n", $content);
    if (count($paragraphs) > $paragraphCount) {
        $paragraphs = array_slice($paragraphs, 0, $paragraphCount);
        $content = implode("\n", $paragraphs);
    }
    return $content;
}

الاستخدام:

// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2); 

أفضل الممارسات والتعامل مع الأعداد الزائدة:

  • استخدم أسطرًا جديدة للفقرات: عادةً ما يتم فصل الفقرات بأسطر جديدة (\n). تأكد من أن المحتوى الخاص بك يتبع هذا التنسيق.
  • التحقق من عدد الفقرات: تحقق مما إذا كان عدد فقرات المحتوى مناسبًا للمقتطف.
  • احترام بنية المحتوى: حافظ على بنية الفقرات في المقتطف للحفاظ على سلامة المحتوى.

مقتطف من عدد فقرات HTML

عند التعامل مع محتوى HTML، ستحتاج إلى استخراج مقتطفات بناءً على <p> علامات للحفاظ على بنية وتنسيق المحتوى الأصلي.

function excerptByHtmlParagraphCount($content, $paragraphCount) {
    preg_match_all('/<p[^>]*>.*?<\/p>/', $content, $paragraphs);
    $paragraphs = $paragraphs[0];

    if (count($paragraphs) > $paragraphCount) {
        $paragraphs = array_slice($paragraphs, 0, $paragraphCount);
        $content = implode(' ', $paragraphs);
    }
    return $content;
}

الاستخدام:

// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2); 

أفضل الممارسات والتعامل مع الأعداد الزائدة:

  • التعبيرات العادية لمطابقة العلامات: استعمل preg_match_all مع تعبير عادي للمطابقة <p> العلامات. يضمن هذا الأسلوب الحفاظ على بنية وسمات علامات الفقرة.
  • احترام بنية HTML:
    تأكد من أن المقتطف يحافظ على بنية HTML. تجنب كسر العلامات، مما قد يؤدي إلى مشكلات في العرض.
  • التحقق من عدد الفقرات: كما هو الحال مع النص العادي، تحقق مما إذا كان عدد فقرات المحتوى الأصلي كافيًا للمقتطف.
  • التعامل مع العلامات المتداخلة: تذكر أن الفقرات يمكن أن تحتوي على عناصر HTML أخرى مثل الروابط أو الامتدادات. تأكد من حسابات regex الخاصة بك للعلامات المتداخلة داخل الفقرات.

يعد إنشاء مقتطفات بناءً على عدد فقرات HTML في PHP مهمة أكثر تقدمًا مقارنة بمعالجة النص العادي. من الضروري استخدام التعبيرات العادية بعناية للحفاظ على سلامة بنية HTML. تعتبر هذه الطريقة ذات صلة بشكل خاص بتطبيقات الويب حيث يجب عرض المحتوى بتنسيقه الأصلي. كما هو الحال دائمًا، تحقق من طول المحتوى الأصلي وخذ في الاعتبار تجربة المستخدم عند تقديم مقتطفات.

نعم، يحتوي WordPress على مجموعة من الوظائف والميزات الخاصة به التي تسهل إنشاء المقتطفات، والتي يمكن أن تبسط العملية إلى حد كبير مقارنة بمعالجة المقتطفات يدويًا في PHP. فيما يلي نظرة عامة على وظائف WordPress الرئيسية المتعلقة بالمقتطفات:

وظيفة المقتطف في ووردبريس

وورد API يوفر نظامًا قويًا للتعامل مع المقتطفات، مما يجعل تنفيذ وظائف PHP يدويًا غير ضروري لمعظم حالات الاستخدام النموذجية. يوفر WordPress طريقة سهلة الاستخدام لإدارة ملخصات المنشورات، سواء كان ذلك من خلال تخصيص الطول أو تغيير المحتوى اقرأ المزيد النص، أو استخدام علامات القالب لعرض مقتطفات.

the_excerpt()

تقوم علامة قالب WordPress هذه تلقائيًا بطباعة مقتطف من المنشور. يتم استخدامه بشكل شائع في السمات لعرض ملخص المنشور على صفحات الأرشيف.

  • الاستخدام: المكان the_excerpt() داخل الحلقة في ملفات السمات الخاصة بك حيث تريد أن يظهر المقتطف.
  • السلوك: بشكل افتراضي، يعرض أول 55 كلمة من المنشور. إذا كان هناك مقتطف تم تعيينه يدويًا في محرر المشاركات، فسيعرضه بدلاً من ذلك.

get_the_excerpt()

تقوم هذه الوظيفة باسترداد المقتطف دون عرضه، مما يتيح لك المزيد من التحكم في كيفية ومكان استخدامه.

  • الاستخدام: get_the_excerpt($post) يمكن استخدامها لجلب مقتطف من منشور معين.
  • التخصيص: يمكنك التعامل مع السلسلة التي تم إرجاعها حسب الحاجة قبل عرضها.

تخصيص طول المقتطف

يتيح لك WordPress تغيير طول المقتطف الافتراضي عبر ملف excerpt_length منقي.

function custom_excerpt_length($length) {
    return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');

إدارة المزيد من العلامات واقتباس المزيد من النص

the_content('Read more')

تعرض هذه الوظيفة المحتوى حتى يواجه علامة "المزيد". من المفيد عرض مقتطف بطول مخصص داخل محرر المحتوى مباشرةً.

تخصيص مقتطفات من النص

يمكنك تخصيص النص الذي يظهر في نهاية المقتطف (مثل […]) باستخدام excerpt_more منقي.

function custom_excerpt_more($more) {
    return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');

التعامل مع HTML في مقتطفات

مقتطفات WordPress هي نص عادي بشكل افتراضي. إذا كنت بحاجة إلى الاحتفاظ بعلامات HTML في مقتطفات، فيجب عليك إنشاء وظيفة مخصصة أو استخدام مكون إضافي مصمم لهذا الغرض.

ومع ذلك، قد يكون الترميز المخصص أو المكونات الإضافية ضرورية للمتطلبات المتقدمة مثل الحفاظ على علامات HTML في مقتطفات أو إنشاء مقتطفات بناءً على عناصر محددة مثل الجمل أو الفقرات.

Douglas Karr

Douglas Karr هو CMO من أوبن إنسايتس ومؤسس Martech Zone. ساعد دوغلاس العشرات من الشركات الناشئة الناجحة في MarTech، وساعد في العناية الواجبة بأكثر من 5 مليارات دولار في عمليات الاستحواذ والاستثمارات في Martech، ويستمر في مساعدة الشركات في تنفيذ وأتمتة استراتيجيات المبيعات والتسويق الخاصة بها. دوغلاس هو أحد خبراء التحول الرقمي المعترف بهم عالميًا وخبير ومتحدث في MarTech. دوغلاس هو أيضًا مؤلف منشور لدليل Dummie وكتاب عن قيادة الأعمال.

مقالات ذات صلة

العودة إلى الزر العلوي
اغلاق

كشف Adblock

Martech Zone قادر على تزويدك بهذا المحتوى دون أي تكلفة لأننا نستثمر موقعنا من خلال عائدات الإعلانات ، والروابط التابعة ، والرعاية. سنكون ممتنين إذا قمت بإزالة مانع الإعلانات الخاص بك أثناء عرض موقعنا.