رفتن به مطلب

نمایش بخشی از یک پست


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

سلام خدمت دوستان و مدیران ارجمند

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


<?php //
function custom_excerpt_length( $length ) {
return 53;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
function custom_excerpt_more( $more ) {
return ' [.....]';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
?>

و برای نمایشش از این کد:


<?php the_excerpt(); ?>

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

متشکرم

لینک به ارسال

از تابع wp_trim_words استفاده کنید:


<?php
$trimexcerpt = get_the_excerpt();
$shortexcerpt = wp_trim_words( $trimexcerpt, $num_words = 65, $more = ' <a href="' . get_permalink() . '" class="more-link">'.__('more', 'wpparsi').'</a>' );
echo '<p>' . $shortexcerpt . '</p>';
?>

مستقیم در محل نمایش بگذارید بجای 65 عدد دلخواه را بنویسید

http://codex.wordpress.org/Function_Reference/wp_trim_words

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

می تونید تابع هم ازش بسازید تا با با تغییر متغییر تابع دذر جاهای مختلف فراخوانیش کنید مثل


function shortexcerpt($num) {
if(empty($num)) $num = '25';
$trimexcerpt = get_the_content();
$shortexcerpt = wp_trim_words( wpautop($trimexcerpt), $num_words = $num, $more = '[...]' );
echo $shortexcerpt;
}

که با


<?php shortexcerpt('80');?>

فراخوانی می شه

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

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

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

سلامی مجدد....

دوستان یه مشکل دیگه دارم با این کد.. و اون اینه:

وقتی متنی رو منتشر میکنیم و تو اون مطلب مثلا متن بولد شده Bold و یا لینک دار هستش و... ، توی صفحه اصلی که قراره با کد های فوق بخشی از نوشته نشون داده بشه ، نوشته ها بدون این استایل بندی ها هستن! یعنی اگر نوشته لینک داره و یا رنگی هستش و یا بولد یا ایتالیک شده ، نشون نمیده و بدون این استایلا نشون میدن این کد های کوتاه کننده متن ..

برای اون راهی هست؟ که بخوام متن همونطوری که هست با تمام استایل هاش برش بخوره؟

لینک به ارسال

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

لینک به صورت


<a href="address/link">لینک</a>

خونده می شه که در نتیجه وقتی مثلا از مثال بالا بخواهیم دو کلمه را نگه داریم مقدارش می شه


<a href="address/link"

که یک تگ باز A ایجاد می شه و مابقی صفحه را هم دچار مشکل می کنه

برای کاری که می خواهید بکنید بهترین راه استفاده از


<!--more-->

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

می تونید برای more مشابه هایی بسازید تا در محل های مختلف در جاهای مختلف نوشته قرار بگیره

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

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

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



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