rasivell

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

17 پست در این موضوع قرار دارد

سلام

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

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


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

به اشتراک گذاری این پست


لینک به پست

اگر کوئری ها ریست بشن خیر زیاد تاثیری در سرعت ندارن

به اشتراک گذاری این پست


لینک به پست

لطفا منو هم راهنمایی کنید چطور میتونم یه صفحه برای دسته هام درست کنم . یعنی مثلا روی دسته x کلیک میکنم پستای مربوط به اون دسته بیاد

به اشتراک گذاری این پست


لینک به پست

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

به اشتراک گذاری این پست


لینک به پست

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

شما کوئری دارید در کوئری خاصیت 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:

به اشتراک گذاری این پست


لینک به پست

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

من میخوام ای دی دسته جاری تو قالب 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(); } ?>

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

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

به اشتراک گذاری این پست


لینک به پست

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

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


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

ویرایش شده در توسط ab2ullah

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری