با سلام؛
من یک مشکلی در زمینه استفاده از کلاس WP_Query برام پیش اومده. چند جا از این تابع استفاده کردم؛ مثلا برای نمایش تعدادی پست به صورت تصادفی و یا نمایش پست های یک دسته و از این قبیل کارها.
به عنوان مثال یکی از کدهایی که نوشتم اینه:
<ul>
<?php $myquery=new WP_Query(array('category_name'=>'sample-cat-name','orderby'=>'rand','posts_per_page'=>'5'));
while ($myquery->have_posts()): $myquery->the_post(); ?>
<li>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
</li>
<?php endwhile;
wp_reset_postdata(); ?>
</ul>
جالب است که در صفحه اصلی سایت، در فهرست بندی مطالب یک دسته یا مطالب مربوط به یک برچسب، و نمایش صفحات، این بخش از کد به درستی کار می کند.
در قالبی که من استفاده می کنم، صفحات نیز از قالب نمایش نوشته های تکی استفاده می کنند.
برای برخی از پست ها این کد هیچ پاسخی بر نمی گرداند. برای برخی از پست ها این کد دارای خروجی است. اما غالبا خروجی ها مربوط به پست هایی هستند که کهنه تر از پست در حال نمایش نیستند.
برای کد مربوط به نمایش پست های تصادفی نیز تقریبا به همین شکل است.
به نظر می رسد که کلاس WP_Query تحت تاثیر کوئری سابق و اصلی وردپرس قرار می گیرد و نتایج بی ربطی تولید می کند.
توضیح اضافی (این پاراگراف پس از ویرایش اضافه شده است)
این مشکل فقط زمانی پیش می آید که در ساختار پیوند یکتا از شماره سال، ماه و یا روز استفاده شود!!!
قبلا ساختار پیوند یکتا به این صورت بود:
/%year%/%monthnum%/%postname%/
که من آن را تغییر دادم و با استفاه از هر کدام از موارد زیر مشکلی وجود نداشت:
/%post_id%/%postname%/
/%post_id%/
/%postname%/
ظاهرا این یک باگ در وردپرس است.
یعنی هر وقت در ساختار پیوند یکتا از مشخصات تقویمی استفاده شود، کلاس WP_Query به درستی کار نمی کند!
لطفا در صورت امکان اگر از دوستان کسی قبلا به این مشکل برخورده و یا راه حل مشکل را می داند، مرا راهنمایی کند.
با تشکر