رفتن به مطلب

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


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

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

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


<?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

لینک به ارسال

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


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');?>

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

لینک به ارسال

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

لینک به ارسال

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

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

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

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

لینک به ارسال

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

لینک به صورت


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

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


<a href="address/link"

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

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


<!--more-->

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

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...