محدود کردن تعداد کاراکترها در وردپرس

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

با توجه به رشد چشم‌گیر و روز افزون وردپرس در میان کاربران می‌توان خواسته‌ها و نیازهای متفاوت آنها را برای سفارشی کردن وردپرس، که بیشتر مرتبط با هسته‌ی وردپرس و پوسته‌های آن می‌باشد را دید.

محدود کردن تعداد کاراکترها در وردپرس را نیز می‌توان به عنوان یکی از این نیازها معرفی کرد چرا که در بسیاری از موارد همانند نظم بخشیدن به ظاهر پوسته برای نمایش تعداد کاراکتر مشخص شده در هر نوشته، محدود کردن کاراکتر عناوین نوشته‌های وردپرس و… نیاز هست مانُور بیشتری بر روی تعداد کاراکترهای متن در وردپرس داشت که این محدودیت رابطه‌ی مستقیمی با هسته و پوسته‌ی وردپرس دارد و در این نوشته از وبلاگ ماندگار وب بنا به درخواست یکی از بازدیدکنندگان آن را بصورت کامل برای شما دوست داران وردپرس شرح خواهیم داد .

آموزش تعیین تعداد کاراکتر در عناوین نوشته‌های وردپرس:

از دلایل مختلفی که برای کوتاه کردن عنوان‌ها در وردپرس می‌توان به آن اشاره کرد این است که ممکن است شما پوسته‌ای را طراحی و یا در حال استفاده از پوسته‌ای هستید که در برخی از قسمت‌های آن به دلیل بلند بودن عنوان نوشته‌ها پوسته‌ی شما از حالت معمول خود خارج شده و عنوان‌ها با آرایش نا منظمی در پوسته به نمایش در بیایند که برای رفع کردن چنین مشکلاتی و مشخص کردن تعداد کاراکتر در عنوان می‌توانید به روش‌های زیر عمل کنید:

در روش اول که بیشتر مناسب برای دوستانی هست که نیاز دارند این عمل را تنها در قسمتِ خاصی از پوسته انجام دهند به این معنی که آنها به کم کردن تعداد کلمات در عنوان نوشته‌های وردپرس تنها در یک قسمت از پوسته‌ی خود نیاز دارند و می‌توانند از دستور زیر برای کنترل کردن تعداد کاراکترها استفاده نمایند:

<?php echo mb_substr(the_title('', '', FALSE), 0, 30); ?>

در خط بالا تعداد کاراکترها برای نمایش عنوان نوشته بر روی 30 کاراکتر قرار داده شده است که شما می‌توانید این مقدار را بسته به نیاز خود تغییر دهید، شاید پس از ذخیره کردن تغییرات و نمایش آن متوجه این موضوع شوید که ممکن است کاربران  به خاطر محدود کردن تعداد کاراکترها در عناوین متوجه آن نشوند که این عنوان تنها خلاصه‌ای از عنوان اصلی می‌باشد که برای رفع این مشکل هم می‌توانید طبق روال همیشگی ادامه یا همان ( … ) را به آخر عناوین خود برای درک بهتر کاربران اضافه کنید که دستور بالا به شکل زیر تغییر خواهد کرد:

<?php if (strlen($post->post_title) > 30) { echo mb_substr(the_title($before = '', $after = '', FALSE), 0, 30) . '...'; } else { the_title(); } ?>

روش دوم هم مناسب برای دوستانی هست که در پوسته‌ی خود نیاز دارند این عمل را به دفعات بیشتر تکرار کنند که تقریبا استفاده از روش اول باعث بالا رفتن حجم کاری آنها می‌شود و برای تسریع و سهولت کارشان می‌توانند دستور زیر را به فایل functions.php پوسته‌ی وردپرس خود اضافه نمایند، دوستانی که این فایل را در ریشه پوسته خود ندارند می‌توانند آنرا ایجاد کنند  (خواهشمندیم پیش از ایجاد هر تغییری در این فایل از آن نسخه‌ی پشتیبان تهیه نمایید تا در صورت بروز خطا آنرا به حالت اول بازگردانید):

function limit_title($title, $n){
if ( strlen ($title) > $n )
{
echo mb_substr(the_title($before = '', $after = '', FALSE), 0, $n) . '...';
}
else { the_title(); }
}

و برای نمایش خروجی آن در فایل‌های پوسته از تابع زیر استفاده نمایید:

<?php limit_title($post->post_title, 30); ?>

لازم به ذکر است این تابع باید در حلقه‌ی پست استفاده شود و می‌توانید مقدار 30 را به مقدار دلخواه خود تغییر دهید.

آموزش تعیین تعداد کاراکتر در نوشته‌های وردپرس:

همانطور که در آغاز نوشته به آن اشاره کردیم تعیین تعداد کلمه‌ها در بخش نوشته‌های پوسته‌ی شما می‌تواند نظم خاصی را به پوسته‌ی شما ببخشد و به دلیل یکسان بودن تعداد کاراکترها در نوشته‌ها، باعث زیبایی پوسته‌ی وردپرس شما شود همچنین در مواردی همانند طراحی اسلایدر برای پوسته‌ی خود نیاز دارید که تعداد کلمات مشخص شده‌ای را برای نمایش در اسلایدر تعیین کنید چرا که ممکن است در حالت پیش‌فرض، تعداد کاراکترهای نا مشخص باعث برهم ریختن نمایش اسلایدر پوسته‌ی شما شود برای محدود کردن تعداد کلمات در نوشته‌ها راه‌های گوناگونی وجود دارد که بصورت جداگانه به معرفی پر کاربردترین آنها می‌پردازیم.

اگر قصد این را دارید که تنها در یک بخش از پوسته‌ی خود تعداد کاراکترهای نوشته را مشخص کنید بهتر است از ساده‌ترین روش برای کم کردن تعداد کلمه‌ها در نوشته‌های وردپرس خود استفاده کنید که برای انجام این کار لازم است دستور زیر را به فایل فانکشن پوسته اضافه نمایید:

function excerpt($length) {
return 30;
}
function more($more) {
return ' ...';
}
add_filter('excerpt_more', 'more');
add_filter('excerpt_length', 'excerpt');

لازم است بدانید برای عملکرد صحیح این فانکشن می‌بایست در حلقه‌ی خود تابع

<?php the_content();?>

را به تابع

<?php the_excerpt();?>

تغییر بدهید. همانطور که بعد از ذخیره کردن مشاهده خواهید کرد تعداد کاراکترهای تابع the_excerpt به تعداد مورد پسند شما تغییر یافته است که در دستور بالا این مقدار برای نمونه بر روی 30 کاراکتر تنظیم شده است.

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

function the_content_limit($max_char, $more_link_text = 'ادامه ...', $stripteaser = 0, $more_file = '') {
$content = get_the_content($more_link_text, $stripteaser, $more_file);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
$content = strip_tags($content,'');
if (strlen($_GET['p']) > 0) {
echo "<p>";
echo $content;
echo "&nbsp;<a href='";
the_permalink();
echo "'>"."ادامه مطلب &rarr;</a>";
echo "</p>";
}
else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
$content = mb_substr($content, 0, $espacio);
$content = $content;
echo "<p>";
echo $content;
echo "...";
echo "&nbsp;<a href='";
the_permalink();
echo "'>".$more_link_text."</a>";
echo "</p>";
}
else {
echo "<p>";
echo $content;
echo "&nbsp;<a href='";
the_permalink();
echo "'>"."ادامه مطلب &rarr;</a>";
echo "</p>";
}
}

و برای خروجی آن در پوسته‌ی وردپرس خود از تابع زیر استفاده نمایند و مقدار 30 را به مقدار دلخواه خود تغییر دهند، همچنین می‌تو‌انید کدهای بالا را برای محدود کردن تعداد کلمه‌ها در نوشته‌ها از انتهای همین نوشته در ماندگار وب بصورت افزونه دریافت کرده و پس از فعالسازی آن برای استفاده در پوسته‌ی خود تابع آن را فراخوان کنید:

<?php the_content_limit(30); ?>

امیدورام این آموزش مورد پسند شما دوستان قرار گرفته باشد.

دریافت افزونه محدود کردن تعداد کاراکترها در نوشته‌ها


کانال تلگرام ماندگار وب

  1. بهزاد

    ماندگار وب یدونه باشی
    مطالبتون مثله هلو میمونه امیر جان یه دنیا ممنون

    1. امیر خلجی مهر

      شما لطف داری بهزاد جان ، خوشحالم که مفید ارزیابی میکنید {گل}

  2. مهدی

    بسیار عالی . ممنون بابت زحماتتون

  3. فردین

    اوووووووووووووووووه
    پسر ترکوندی با این کد دم شما گرممممممم
    خیلی جاها به دردم خورد
    ولی وقتی میرم تو یه دسته مثلا دسته مذهبی مطالب اون دسته رو کامل نشون میده میخوام از این کد استفاده کنم
    باید تو کدوم قسمت پوسته بزارم
    سینگل؟
    پیج؟
    کجا خواهشن راهنمایی کنید
    پوسه ای که ازش استفاده میکنم اینه
    http://themes.mandegarweb.com/neutral/

    1. امیر خلجی مهر

      خواهش میکنم فردین جان
      منظورت از دسته چی هست فردین جان
      منظورت تمام نوشته های یک دسته هست یا چیز دیگه
      اگه تو پوسته فایلی به نام archive یا category وجود داره باید تابع the_content رو به the_excerpt تغییر بدی
      اگه مشکلی تو ویرایش داشتی لطفا” تو انجمن مطرح کن
      موفق باشی

  4. hadad

    مرسی از لطف همیشگیتون خبرنامتون طرخ جالبی داره میشه یک کد بدین که منم ادرس فیدم رو اونجا قرار بدم که عضویت در خبرنامه منم مثل شما زیبا بشه؟

    1. امیر خلجی مهر

      سلام
      خواهش میکنم حداد جان در مورد خبرنامه هم حقیقتش امکانش نیست ، لطفا” جسارت بنده رو ببخشید {گل}

  5. amin

    سلام
    آقا عالی بود ، کارم خیلی گیره این بود مرسی…

  6. جواد

    سلام
    ضمن تشكر از مطالب پركاربردتئن بايد بگم چرا لقمه رو دور سرتون مي پيچونيد
    the_content_rss(”,TRUE,”,20);
    20 تعداد كلمات است

    1. امیر خلجی مهر

      درود بر شما
      دوست خوبم واقعاً فکر میکنید ما این همه بیکار هستیم که لقمه رو دور سرمون بگردونیم؟
      شما بفرمایید به نظرتون این تابعی که اینجا گذاشتید رو تا حدی میشه کاستومایز کرد؟

  7. aria

    خوب بود ، مورد اول رو استفاده کردم

  8. ترنگ

    ممنون
    فقط یه سوال محدود کردن در نوشتن هست یعنی اگه از کد شما استفاده کنیم دیگه بیشتر این کلمات نیمشه نوشت توی نوشته های تازه؟

    1. امیر خلجی مهر

      نه قربونتون برم چنین چیزی نیست
      کاربرد این آموزش چیز دیگری هست، برای مثال میشه برای متن های نوشته ها در برگه ی اصلی تعداد کاراکتر مشخص کرد، یعنی تعیین میکنیم در برگه ی اصلی تنها 50 کاراکتر از کل متن رو به نمایش در بیاره
      موفق باشید

  9. اسد اسماعیلی

    ممنون مطلب مفیدی بود استفاده بردیم

  10. رئیسی

    سلام و خسته نباشید
    راستش میخواستم یک سایت راه اندازی کنم با وردپرس اما قبلش تستی روی یک هاست رایگان یکی زدم که مشکلاتم رو برطرف کنم بعد

    به هر حال

    من وقتی پستی رو ارسال میکنم در مرورگرم “فایرفاکس یا …” اون پست نصفه نیمه میاد
    اصلا زمانی که پست رو ارسال میکنم همون لحظه که ارسال میشه نوشته : نمایش پست
    موس رو که روی اون میبرم ، عنوان پست نصفه نیمه نمایش داده میشه
    البته اگه عنوانش طولانی باشه این اتفاق میفته و عاوین کوتاه این مشکل رو ندارند

    مثال :

    عکسی از سنگ قبر تجملاتی برای سگ یک بازیگر تلویزیون و صدا و سیما

    که در جستجوگر شده :

    عکسی از سنگ قبر تجملاتی برای سگ یک بازیگ

    خواهشا بهم بگید چکار کنم ؟
    من مبتدی هستم ، کمی سطح پایین بگید که متوجه شم

    ببخشید خواهشا

    1. امیر خلجی مهر

      درود

      کجا نصف و نیمه میاد؟ اگه منظور شما عنوانی هست که تو پنجره مرورگر نمایش داده میشه، طبیعی هست و برای همه همینطور هست
      موفق باشید

  11. CaeZer

    سلام دوست عزیز

    بنده از روش عوض محدودیت متن برای قسمت دسته ها استفاده میکنم.

    ولی وقتی به the_excerpt تغییر میدم . دکمه ادامه مطلب حذف میشه .

    چطور میتونم این مشکل رو رفع کنم ؟

    تشکر

    1. امیر خلجی مهر

      درود
      اسکریت‌شاتی از پیش و پس از تغییرات تهیه کنید چون دکمه ادامه نوشته برای پوسته شما هست و ارتباطی به این توابع نداره.

دیدگاه خود را بنویسید

تنها دیدگاه‌هایی که به فارسی نوشته می‌شوند پذیرفته خواهند شد!

ماندگار وب - 1395
فروش - خرید هاست وردپرس فارسی