رفتن به مطلب

كوئري نمايش تعداد پست در برگه دسته ها


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

سلام

من ميخوام توي قالب كتگوري كاري كنم كه تعداد پست هاي نمايش داده شده رو از يه كد بخونه نه از تنظيمات وردپرس!

راهي به ذهنم نرسيد گفتم كوئري ايجاد كنم! اگر راه بهتري هست لطف دوستان بگن و يا نه اگر همين راه مناسبه ، ميخوام بدونم چرا وقتي من از كد زير استفاده ميكنم ، به مشكل ميخورم


<?php $wp_query->query('showposts=26');?>

اين كد تعداد نمايش رو درست ميكنه ولي نظمو بهم ميريزه يعني توي برگه نرم افزاري براي مثال ، پست هاي سخت افزار رو هم توش نشون ميده

.

لینک به ارسال

کوئری بهترین راه هست.

اگر هم دسته رو درست نمیاره بهش خاصیت cat رو اضافه کنید و آی دی دسته جاری رو بهش بدید.(قبلا توی انجمن قرار دادم)

لینک به ارسال

مشترك

مرتضي جان فكر كنم اشتباه متوجه شدي! ما يدونه فايل كتگوري داريم! قرار بر اين باشه كه من بخوام بهش اي دي دسته بدم كه اون فايل قالب كتگوري ميشه فقط مال اون يه دسته ! و اينطوري بايد برم 200 تا فايل كتگوري بسازم كه!!! يه فايل كتگوري هستش ميخوام تعداد نمايش پست هاشو دستي وارد كنم نه از پنل! وقتي كد فوق رو ميزنم و ميرم توي كتگوري هام ، تعداد نمايش درست ميشه ولي تو هر كتگوري بجاي اينكه پست هاي خودش باشه پست هاي كتگوري هاي ديگه هم هست!

اگرم بيام خاصيت Cat بدم و اي دي دسته بدم مياد فقط اون يه دسته رو نشون ميده يعني عملا تو هر دسته بندي بري فقط پست هاي اون يه دسته كه مشخص شده است رو نشون ميده!

لینک به ارسال

نه متوجه منظور من نشدید!

شما کوئری دارید در کوئری خاصیت cat رو وارد کنید. و آی دی دسته جاری رو بصورت داینامیک بهش بدید دیگه در هر دسته ایی میرید پسهای همون دسته میاد. هیچ فایل اضافه ایی نیاز نیست.

برای آی دی دسته جاری:

$category = get_the_category();
$category_id = $category->cat_ID;

یا تابع:

function getCurrentCatID(){
global $wp_query;
if(is_category() || is_single()){
$cat_ID = get_query_var('cat');
}
return $cat_ID;
}

echo getCurrentCatID();

لینک به ارسال

روشی دیگر:

http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts


function hwl_home_pagesize( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( is_category() ) {
$query->set( 'posts_per_page', 50 );
return;
}
}
add_action( 'pre_get_posts', 'hwl_home_pagesize', 1 );

لینک به ارسال

/

متشكرم.. دوستان با راهنمايي شما مشكل مرتفع گرديد

يه سوال ديگه از كوئري دارم.. ، ميخوام توي يه قسمت بگم ، از كتگوري شماره 3 ، 2 تا مطلب بزار ، و از كتگوري شمار 4 ، 3 تا مطلب بزار جمعا بشه 5 مطلب كه 2 تاش از يكي باشه 3 تاش هم از يه كتگوري ديگه ، از اين كد استفاده ميكنم ولي جواب نميده


query_posts('cat=7,1&post_status=publish&posts_per_page=3,2');

اشكال اين روش چيه؟ چرا عمل نميكنه!

لینک به ارسال

posts_per_page فقط یک عدد میگیرد

برای کار شما باید دوبار کوئری بگیرید

لینک به ارسال

با کمک تابع WHERE یا سلکت به دیتابیس وردپرس هم میشه انجام داد. هر چند باید جوین بزنید.

لینک به ارسال

مرتضي جان اين كاري كه گفتيد رو انجام ندادم فكر نميكنم بتونم انجامش بدم، ولي پارسا جان وقتي عدد اول رو 2 ميدمو عدد دومي رو 1 ميدم كار ميكنه يكي از دسته دوم مياره و 2 تا از دسته اول ولي وقتي عدد 1 رو بيشتر ميكنم خراب ميشه و كار نميكنه! پس با اين اوصاف بايد 2 بار كوئري بگيرم!

امكان كوئري گرفتن 2 بار توي يه حلقه هست؟

لینک به ارسال

2 حلقه استفاده کنید

یا با تابع array_marge خروجی دو کوئری را یکی کنید

لینک به ارسال

متشكرم پارسا جان. ، اين دو گذينه تفاوتي در لود مطلب و سرعت نداره؟ يعني تفاوتي از لحاظ سرعت بين 2 حلقه كردن و تابع مذكور هست؟ من از 2 حلقه استفاده كردم الان ...

ویرایش شده توسط rasivell
لینک به ارسال
  • 1 سال بعد...

مشکلتون رو در تاپیک جدید ایجاد کنید // در ضمن سرچ کنید مشکلتون خیلی در انجمن مطرح شده

لینک به ارسال
  • 3 ماه بعد...

نه متوجه منظور من نشدید!

شما کوئری دارید در کوئری خاصیت cat رو وارد کنید. و آی دی دسته جاری رو بصورت داینامیک بهش بدید دیگه در هر دسته ایی میرید پسهای همون دسته میاد. هیچ فایل اضافه ایی نیاز نیست.

برای آی دی دسته جاری:

$category = get_the_category();
$category_id = $category->cat_ID;

یا تابع:

function getCurrentCatID(){
global $wp_query;
if(is_category() || is_single()){
$cat_ID = get_query_var('cat');
}
return $cat_ID;
}

echo getCurrentCatID();

دوست عزیز من میخوام 20 تا مطلب تو صفحه category نمایش داده بشه

به این صورت


http://www.beytoote.com/news/foreign-policy/

یعنی 10 تایی که تو ستون سمت چپ نمایش داده میشه دیگه تو ستون سمت راست تکرار نشه

به این صورت عمل کردم نشد


<?php query_posts('showposts=10&ofset=10'); ?>

میشه کوئری که مد نظر بنده هستش رو قرار بدین

ممنون :wub:

لینک به ارسال
  • 2 هفته بعد...

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

من میخوام ای دی دسته جاری تو قالب category.php رو فراخوانی کنم و تو قسمت cat بذارم تا مطالب دسته نمایش داده بشه


<?php query_posts('showposts=10&cat=ای دی رو چطور فراخوانی کنم اینجاofset=10'); ?>

این کد قالب category بنده هستش ممنون میشم راهنماییم کنید


<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="topnews">
<div class="topnewspic"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
<?php the_post_thumbnail( 'thumb180' ); ?></a></div>
<div class="topnewsinfo">
<div class="topnewsinfotitle">
<h2 style="font-size:15px;"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div></h2>
<div class="newslead" style="line-height: 160%;"><?php the_excerpt(); ?></div>
</div></div>
<?php endwhile; ?>
<?php endif; ?>
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

چند روزه تو سایتای ایرانی و خارجی دنبالشم ولی نتونستم کد رو درست بذارم

ممنون میشم کمکم کنید

لینک به ارسال
  • 5 هفته بعد...

من هم دقیقا هم سوال رو دارم:

چطور تو category.php به جای دسته بندی مورد نظر دسته جاری رو خودش قرار بده دستی وارد نکنیم


<?php query_posts('showposts=10&cat=ای دی دسته جاری اینجاofset=10'); ?>

ویرایش شده توسط ab2ullah
لینک به ارسال

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

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

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

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

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

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

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

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

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