رفتن به مطلب

استفاده از خلاصه مطالب با طول های متفاوت


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

برای قالب جدیدی که دارم طراحی می کنم در یک صفحه نیاز ارم تا برخی از مطالب ارای خلاصه بیشتری باشند و برخی دارای خلاصه کمتری باشند. حالا من از کد


<?php the_excerpt(); ?>

استفاده می کنم. چجوری می تونم طول متنی که این کد فراخوانی می کنه را تغییر بدم؟

لینک به ارسال

کافیه توی کمانک ها ( پرانتز ) تعداد کاراکتری که میخواهید نمایش داده شود را وارد کنید

اگر عمل نکرد از کد زیر استفاده کنید


<?php echo excerpt(40); ?>

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

وقتی که از کد


<?php the_excerpt(40); ?>

استفاده می کنم هیچ تغییری نمی کنه وقتی هم که از کد


<?php echo excerpt(40); ?>

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


Call to undefined function excerpt()

لینک به ارسال

کد زیر رو در فایل فانکشن قرار دهید:


function excerpt_count_js(){
echo '<script>jQuery(document).ready(function(){
jQuery("#postexcerpt .handlediv").after("<div style=\"position:absolute;top:0px;right:5px;color:#666;\"><small>Excerpt length: </small><input type=\"text\" value=\"0\" maxlength=\"3\" size=\"3\" id=\"excerpt_counter\" readonly=\"\" style=\"background:#fff;\"> <small>character(s).</small></div>");
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
jQuery("#excerpt").keyup( function() {
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
});
});</script>';
}
add_action( 'admin_head-post.php', 'excerpt_count_js');
add_action( 'admin_head-post-new.php', 'excerpt_count_js');

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

لینک به ارسال

همچنین:


function your_excerpt_length($length) {
return 40;
}
add_filter('excerpt_length', 'your_excerpt_length');

و

لینک به ارسال

کد زیر رو در فایل فانکشن قرار دهید:


function excerpt_count_js(){
echo '<script>jQuery(document).ready(function(){
jQuery("#postexcerpt .handlediv").after("<div style=\"position:absolute;top:0px;right:5px;color:#666;\"><small>Excerpt length: </small><input type=\"text\" value=\"0\" maxlength=\"3\" size=\"3\" id=\"excerpt_counter\" readonly=\"\" style=\"background:#fff;\"> <small>character(s).</small></div>");
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
jQuery("#excerpt").keyup( function() {
jQuery("#excerpt_counter").val(jQuery("#excerpt").val().length);
});
});</script>';
}
add_action( 'admin_head-post.php', 'excerpt_count_js');
add_action( 'admin_head-post-new.php', 'excerpt_count_js');

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

تشکر ولی من می خواهم در چند جای قالب خلاصه مطالب متفاوت باشه

لینک به ارسال

از بین اینها این یکی خوب بود ولی من نمی دونم این کد و کد دومی را کجا بگذارم.

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


if ( !function_exists( 'excerpt_length' ) ) :
function excerpt_length($string, $start_pos = 0, $max_length = 280) {
if(strlen($string) > $max_length) {
$excerpt = substr($string, $start_pos, $max_length-3);
$last_space = strrpos($excerpt, ' ');
$excerpt = substr($excerpt, 0, $last_space);
$excerpt .= '<span style="margin: 0 5px;">...</span>';
} else {
$excerpt = $string;
}
return $excerpt;
}
endif;

کافی در اون شرط استفاده کنی و هربار برای هر پست مقدار max_lenght رو مقدار بدی


echo excerpt_length( get_the_excerpt(), 350 )

از آموزش مشخص کردن تعداد کاراکترها هم وقتی کد زیر را داخل فانکشن قرار می دهم ارور می ده.


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(']]>', ']]>', $content);
$content = strip_tags($content,'');
if (strlen($_GET['p']) > 0) {
echo "<p>";
echo $content;
echo " <a href='";
the_permalink();
echo "'>"."ادامه مطلب →</a>";
echo "</p>";
}
else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
$content = substr($content, 0, $espacio);
$content = $content;
echo "<p>";
echo $content;
echo "...";
echo " <a href='";
the_permalink();
echo "'>".$more_link_text."</a>";
echo "</p>";
}
else {
echo "<p>";
echo $content;
echo " <a href='";
the_permalink();
echo "'>"."ادامه مطلب →</a>";
echo "</p>";
}
}

لینک به ارسال

شما اول کد زیر را در فایل functions قال قرار بدید


//محدود کردن لغات
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
return $excerpt;
}

function content($limit) {
$content = explode(' ', get_the_content(), $limit);
if (count($content)>=$limit) {
array_pop($content);
$content = implode(" ",$content).'...';
} else {
$content = implode(" ",$content);
}
$content = preg_replace('/\[.+\]/','', $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
return $content;
}

و سپس این کد را هم در جایی که میخواهید خلاصه مطلب نمایش داده بشه قرار بدید :


<?php echo excerpt(40); ?>

لینک به ارسال

شما اول کد زیر را در فایل functions قال قرار بدید


//محدود کردن لغات
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
return $excerpt;
}

function content($limit) {
$content = explode(' ', get_the_content(), $limit);
if (count($content)>=$limit) {
array_pop($content);
$content = implode(" ",$content).'...';
} else {
$content = implode(" ",$content);
}
$content = preg_replace('/\[.+\]/','', $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
return $content;
}

و سپس این کد را هم در جایی که میخواهید خلاصه مطلب نمایش داده بشه قرار بدید :


<?php echo excerpt(40); ?>

چرا این کد بیشتر از 60 کاراکتر نشون نمیده؟ آیا میشه از این کد در چند جای مختلف قالب با مقدار های متفاوت استفاده کرد؟

درود

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


<?php the_content_rss('', TRUE, '', 60); ?>

این یکی عالی بود کارم با همین کد راه افتاد خیلی متشکرم از شما ^_^

لینک به ارسال

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

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

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

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

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

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

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

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

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