رفتن به مطلب

مشکلی در کات کردن عنوان مطالب (substr)


پست های پیشنهاد شده

سلام ، طبق کدی که قبلا متضی جان معرفی کرده بود برای نمایش دادن و شمردن ، میزان بازدید از پست ؛ بعد ها در ادامه اش کدی هم داد که بتونیم مثلا چند پست پر بازدید رو هم نشون بدیم! که من از اون کد به شرح زیر استفاده میکنم:


<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
if (strlen($post->post_title) > 85)
{
echo substr(the_title($before = '', $after = '', FALSE), 0, 84) , '...';
}
else { the_title(); }
?>
</a>
</li>
<?php

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

ولی ما با این دستور یه مشکلی داریم! و اونم اینه که اگر تو عنوان پست ، حروف انگلیسی و فارسی باشه ، قاطی میکنه! اولویت رو به حروف انگلیسی میده و اونارو میشماره و فارسی هاشون رو نه !! (فارسی تنهارو درست میشموره ها! ولی باهم باشن فقط انگلسی رو میشماره!) و این میشه که بجای اینکه کات کنه حرف رو 84 تاشون نشون بده ، کل رو نشون میده!! یعنی نمیتونه بشماره وقی تو عنوانش انگلسی و فارسی باهم باشه!

حالا ، به نظر من اشکال از دستور substr هستش!! عزیزان حرفه ای ، راه حلی برای این دستور دارید؟ که دقیقا کات کنه نوشته های بلند رو!؟

لینک به ارسال

سلام ، طبق کدی که قبلا متضی جان معرفی کرده بود برای نمایش دادن و شمردن ، میزان بازدید از پست ؛ بعد ها در ادامه اش کدی هم داد که بتونیم مثلا چند پست پر بازدید رو هم نشون بدیم! که من از اون کد به شرح زیر استفاده میکنم:


<?php
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC&showposts=10');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php
if (strlen($post->post_title) > 85)
{
echo substr(the_title($before = '', $after = '', FALSE), 0, 84) , '...';
}
else { the_title(); }
?>
</a>
</li>
<?php

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

ولی ما با این دستور یه مشکلی داریم! و اونم اینه که اگر تو عنوان پست ، حروف انگلیسی و فارسی باشه ، قاطی میکنه! اولویت رو به حروف انگلیسی میده و اونارو میشماره و فارسی هاشون رو نه !! (فارسی تنهارو درست میشموره ها! ولی باهم باشن فقط انگلسی رو میشماره!) و این میشه که بجای اینکه کات کنه حرف رو 84 تاشون نشون بده ، کل رو نشون میده!! یعنی نمیتونه بشماره وقی تو عنوانش انگلسی و فارسی باهم باشه!

حالا ، به نظر من اشکال از دستور substr هستش!! عزیزان حرفه ای ، راه حلی برای این دستور دارید؟ که دقیقا کات کنه نوشته های بلند رو!؟

سلام

بهتره بجای substrاز MB_substr استفاده بشه...

  • امتیاز 3
لینک به ارسال

جواب نداد!!!

شاید باید هر دو دستور strlen و substr به دو دستور دیگه تغیر کنند!

همه جوره تستش کردم نشد!

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...