4 پست در این موضوع قرار دارد

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

! من این کد رو بر اساس تعداد کلمات نوشتم! امیدوارم به دردتون بخوره!

تابع، که بهتره در هدر قرار بگیره!

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


function limiter_m($str,$limit_word)
{
$tmp=explode(' ',$str);
if (count($tmp)>$limit_word)
{
print_r (implode(' ',array_slice(explode(' ',$str), 0,$limit_word))."...");
}
else
{
print_r(implode(' ',array_slice(explode(' ',$str), 0,$limit_word)));
}
}

خوب حالا هر جا که نیاز به محدود کردن دارید میتونید به شکلهای مختلف از تابع استفاده کنید و تعداد کلمات مجاز رو بهش بدید!

[


1.
<?php limiter_m($post->post_title,20); ?>
2.
<?php limiter_m($post->post_excerpt,40); ?>
3.
<?php limiter_m($post->post_content,20); ?>

امیدوارم بهتون کمک کنه! ;)

2

به اشتراک گذاری این پست


لینک به پست

دستتون درد نکنه البته وردپرس برای اینکار تابع داره


wp_trim_words( $post->post_title, $num_words = 4, $more = '… ' );

و بهتره تابع شما هم در functions.php قرار بگیره

5

به اشتراک گذاری این پست


لینک به پست

خوبی به اشتراک گذاری تجربه ها اینه که آدم هی چیز جدید یاد میگیره! من این کد رو ندید بودم و وقت گذاشتم خودم نوشتم !! ممنون نکته خوبی بود!!! البته نمیدونم اگر قرار باشه زیاد استفاده کنیم از لحاظ پرفورمنسن کدوم روش کارایی بیشتری داشته باشه!!

1

به اشتراک گذاری این پست


لینک به پست

توابعی که در هسته مرکزی تعریف می شوند چه استفاده بشوند چه نه فشار خودشون رو که معمولا متعادل هم هست دارند پس در مواردی که تابع استاندارد وجود داره بهتره کد نویسی انجام نشه

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری