نمایش بخش ادامه مطلب در کوئری

نوشته شده توسط ۶ سال پیش

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

<!--more-->

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

the_content('more');

در داخل حلقه ی مطالب بخش اول از این دو بخش در صفحات بایگانی و اول سایت نمایش داده می شه و در پیوند یکتای مطلب و کوئری های شخصی نیز کل مطلب (هر دو بخش) فراخوانی می شند

با استفاده از تابع

get_extended();

می تونیم در کوئری های شخصی نیز بخش اول مطالب را نمایش بدیم و یا در محل های دلخواه فقط بخش دوم را به نمایش بگذاریم
نحوه ی استفاده از تابع
این تابع یک متغیر اصلی داره که مطلب مورد نظر رو بهش معرفی می کنه
و دو مقدار صحیح برگشتی هم داره که مقدار اول (قبل از ادامه مطلب) با main و بخش دوم (بعد از ادامه مطلب) با extended فراخوانی می شند یعنی اگر متغییر را به اینصورت مقدار دهیم

$content_arr = get_extended (get_the_content() );

دو پاسخ

$content_arr['main']
$content_arr['extended']

را بر می گردونه و در یک کوئری ساده می شه به این شکل ازش استفاده کرد

<ul>
<?php
global $post;
$args = array( 'numberposts' => 5 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata( $post );
$content_arr = get_extended (get_the_content() ); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<br />
<?php echo $content_arr['main']; //Display the part before the more tag ?>
</li>
<?php endforeach; ?>
</ul>

و یا برای نمایش فقط بخش ادامه ی مطلب در پیوند یکتا (سئوال چندتا از کاربران در ماه گذشته انجمن) می شه این کد را

<?php
$content_arr = get_extended (get_the_content() );
echo $content_arr['extended']
?>

را جایگزین

<?php the_content( __( 'Continue reading &rarr;', 'TextDomain' ) ); ?>

کرد

پارسا کافی