• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

نمایش نوشته قبل و بعد یه دسته خاص

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
سلام به همه
من می خوام برای یه دسته به صورت اتومات نوشته قبل و بعد اون دسته نشون داده شه مثل آدرس زیر:
http://www.7learn.com/tutorials/آموزش-php-استفاده-از-دستور-include
منظورم جلسه بعدی جلسه قبلی
من کدی که زدم اینه ولی دوتا مشکل داره اولی این که باید برای هر دسته ای که می خوام این امکان رو داشته باشه باید ای دی شو پیدا کنم و در کد ها قرار بدم
دومین مشکل اینه که وقتی یک مطلب رو ایجاد می کنم و از دسته های مختلف براش انتخاب می کنم درست نشون نمی ده.
کد:
<?php
if(in_category(1)) {
$next_post = get_next_post(1);
$previous_post = get_previous_post(1);
}
elseif(in_category(2)) {
$next_post = get_next_post(2);
$previous_post = get_previous_post(2);
}
if (!empty( $next_post )):
echo "<a href=\"".get_permalink($next_post->ID)."\">".$next_post->post_title." &gt;&gt;</a>";
endif;
if (!empty( $previous_post )):
echo "<a href=\"".get_permalink($previous_post->ID)."\">&lt;&lt; ".$previous_post->post_title."</a>";
endif;
?>
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
این کد رو در هر قسمت از فایل single.php که مایلید پست قبلی و بعدی دسته ایی که پست الا ن درش هستو نشون بده قرار بدید
کد:
              <?php  $post_id = $post->ID;
$cat = get_the_category();
$current_cat_id = $cat[0]->cat_ID;

$args = array(
    'category' => $current_cat_id,
    'orderby'  => 'post_date',
    'order'    => 'DESC'
);
$posts = get_posts( $args );
$ids = array();
foreach ( $posts as $thepost ) {
    $ids[] = $thepost->ID;
}

$thisindex = array_search( $post_id, $ids );
$previd = $ids[ $thisindex - 1 ];
$nextid = $ids[ $thisindex + 1 ];

if ( ! empty( $previd ) ) {
    ?><a rel="prev" href="<?php echo get_permalink($previd) ?>">قبلی</a><?php
}
if ( ! empty( $nextid ) ) {
    ?><a rel="next" href="<?php echo get_permalink($nextid) ?>">بعدی</a><?php
} ?>
اول بررسی کردیم که دسته این پستی که داریم مشاهده میکنیم چیه بعدش نوشته بعدی و قبلی اون دسته رو به نمایش گذاشتیم
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
این کد رو در هر قسمت از فایل single.php که مایلید پست قبلی و بعدی دسته ایی که پست الا ن درش هستو نشون بده قرار بدید
کد:
              <?php  $post_id = $post->ID;
$cat = get_the_category();
$current_cat_id = $cat[0]->cat_ID;

$args = array(
    'category' => $current_cat_id,
    'orderby'  => 'post_date',
    'order'    => 'DESC'
);
$posts = get_posts( $args );
$ids = array();
foreach ( $posts as $thepost ) {
    $ids[] = $thepost->ID;
}

$thisindex = array_search( $post_id, $ids );
$previd = $ids[ $thisindex - 1 ];
$nextid = $ids[ $thisindex + 1 ];

if ( ! empty( $previd ) ) {
    ?><a rel="prev" href="<?php echo get_permalink($previd) ?>">قبلی</a><?php
}
if ( ! empty( $nextid ) ) {
    ?><a rel="next" href="<?php echo get_permalink($nextid) ?>">بعدی</a><?php
} ?>
اول بررسی کردیم که دسته این پستی که داریم مشاهده میکنیم چیه بعدش نوشته بعدی و قبلی اون دسته رو به نمایش گذاشتیم
بسیار ممنون
من با این کد دو تا مشکل دارم
اولی برای پست تایپ blog و تاکسونومی blog-cat چه کار کنم

دوم این که هنگام انتخاب بیشتر از 1 دسته به اشتباه میوفته (منظورم مطالبی هست که بیشتر از یک دسته براشون انتخاب میکنی) راه حلی بنظرتون میرسه؟
 

reza_yki

Registered User
تاریخ عضویت
4 آگوست 2013
نوشته‌ها
106
لایک‌ها
23
لطفا این قسمتم راهنمایی کنید
 

saeedagha2010

Registered User
تاریخ عضویت
21 فوریه 2013
نوشته‌ها
135
لایک‌ها
85
محل سکونت
صندلی
کد براساس دسته مادر کار میکنه مقادیر رو به کوئری اصلی اضافه نمایید مثلا : 'post_type' => 'blog',
 
بالا