انجمن


تغییر کوئری  (۱۵ نوشته)

  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۵ دی ۱۳۹۰ - ۲۱:۳۶

    سلام
    نوبت به من رسید تا من هم به نوعی سوالی داشته باشم و دوستان اگر مایل بود جوابش رو بهم بدن
    سوال من :
    من به فرض مثال از کوئری زیر برای نمایش یک دسته بندی (cat=1 ) و یا یک برگه ( page_id=2 ) و یا یک نوشته ( p=1 ) در جایی از قالب استفاده می کنیم :

    <?php
    query_posts( 'cat=1' );
    if ( have_posts() ) :
    	while ( have_posts() ) : the_post();
    		?>

    مثل استفاده در اینجا:

    <?php
    query_posts( 'cat=1' );
    if ( have_posts() ) :
    	while ( have_posts() ) : the_post();
    		?>
    <a href="<?php the_permalink() ?>"title="<?php the_title(); ?>"><?php the_title(); ?></a>
    
    <p><?php the_content_rss('', TRUE, '', 50); ?></p>
    <?php
    	endwhile;
    endif;
    wp_reset_query();
    
     ?>

    حالا سوال من این هست کوئری مناسبتر چی هست که هم :
    1= مثل این ساده باشه
    2 = با تغییر پیوند یکتا ، فراخوانی دسته و یا برگه و یا نوشته مورد نظر در این کوئری هم تغییر کنه
    توجه کنید با تغییر پیوند یکتا این کوئری از کار می افته

  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۵ دی ۱۳۹۰ - ۲۳:۴۶

    این رفرنس

    https://codex.wordpress.org/Function_Reference/query_posts

    رو هم مورد بررسی قرار دادم ولی هنوز نتوسنتم به جوابی برسم

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

  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۱۷:۴۳

    یک روز دیگه هم صبر می کنم و بعد موضوع رو به حل شده تغییر میدم تا کسی دنباله این تاپیک رو نگیره

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۲۰:۱۷

    روش شما روش پیش فرض هست که شماره آی دی هدف رو در کوئری قرار میدید.
    همونطور هم که گفتین روش بعدی استفاده از نامک هست.
    اما استفاده از نامک با تغییر پیوند یکتا دچار مشکل میشه .
    روش اول چون با ای دی هدف کار میکنه باتغییر پیوند باید کار کنه.
    چون تغییر پیوند یکتا تاثیری روی شماره آی دی ها نداره.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۲۱:۴۴

    داداش به این امر واقف هستم و کلامت درست
    اما گهداهی که از این روش استفاده می کنم بعد از تغییر پیوند یکتا آیدی دسته مورد نظر و یا پست مورد نظر از کار می افته یعنی به مسیر ایدی هدایت نمیشه برای همین برام سوال پیش اومد که چه مشکلی در بین هست

  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۲۱:۵۸

    نباید مشکلی باشه
    البته بهتره از wp_query استفاده بشه

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۲۲:۰۵

    پارسا داداش ممنون اگه مثالی در این زمینه هم داشته باشی بد نمیشه
    به این ادرس هم سری زدم

    https://codex.wordpress.org/Class_Reference/WP_Query

    تست می کنم و نتیجه رو اعلام می کنم

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۹ سال پیش
    ۶ دی ۱۳۹۰ - ۲۳:۲۱

    شما خودتون تجربتون بالاست. واسه همین خیلی خلاصه گفتم ;)
    وردپرس در این آدرس تا جایی که یادمه پیشنهاد کرده از wp_query استفاده کنید
    چون نگارش جدید هست و هر کار میشه باهاش کرد
    حتی کوئریهای ترکیبی خوبی با استفاده از پارامترهای ورودیش میشه ایجاد کرد
    نمونش در قسمت Contents لیست شده

    5.1 Author Parameters
        5.2 Category Parameters
        5.3 Tag Parameters
        5.4 Taxonomy Parameters
        5.5 Post & Page Parameters
        5.6 Type & Status Parameters
        5.7 Pagination Parameters
        5.8 Offset Parameter
        5.9 Order & Orderby Parameters
        5.10 Sticky Post Parameters
        5.11 Time Parameters
        5.12 Custom Field Parameters
        5.13 Permission Parameters

    چند وقت پیش کد مطالب تصادفی داشتم در حدود 20 خط
    اما با wp_query شد 5 خط

    // The Query
    $the_query = new WP_Query( 'cat=4' );
    
    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();
    	echo '<li>';
    	the_title();
    	echo '</li>';
    endwhile;
    
    // Reset Post Data
    wp_reset_postdata();
    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۰۹:۲۲

    ممنون پارسا جان ممنون از کمکت ولی متاسفانه مورد حل نشد چرا که بر روی لوکال تست کردم و با تغییر پیوندیکتا به هر یک از حالتهای دیفالت پیوندیکتا وردپرس ، لینک به 404 تبدیل شدن

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۰۹:۳۱

    نسخه وردپرس چند هست؟
    روی پوسته پیش فرض تست میکنید؟

    چون من هردو حالت رو تست کردم مشکلی نداشته. البته WP_Query بعضا مشکلاتی داره مثل عدم نمایش پستها براساس کوئری ولی query_posts همیشه درست عمل میکنه.

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

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۰۹:۵۴

    نسخه اخر 3.3 هست
    روی قالبهای پیشفرض
    و قالبهایی که خودم طراحی می کنم
    این مورد گاها هست
    در مورد کانکشن به دیتابیس هم زیاد باهاش موافق نیستم چون رکوردهای زیادی رو در دیتابیس ثبت می کنم بخوام این کوئری ها رو هم به این سبک اتصال بدم دیگه ...
    ولی یه تستی در این زمینه هم می کنم ببینم چی مشه...

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۱۰:۰۷

    در مورد کانکشن به دیتابیس هم زیاد باهاش موافق نیستم چون رکوردهای زیادی رو در دیتابیس ثبت می کنم بخوام این کوئری ها رو هم به این سبک اتصال بدم دیگه ...

    نگران این موضوع نباشید
    چون اگر کوئری های وردپرس و کانکشن های دیتابیسش رو ببینید وحشت میکنید ;)
    من افزونه ایی نوشتم که حداقل 10 کانکشن جدید داره با توی دوتاشون هم join داره و برای هر یوزر بکبار اجرا میشن و 3 رکورد به دیتابیس اضافه میکنن. اما فشاری نمیاره.
    اگر وردپرس بخواد با این چیزها دان بشه که .....
    اگر کانکشن ها رو بدرستی باز و بسته کنید و مخصوصا از خود دستورات وردپرس برای کانکت استفاده کنید حداقل فشار وارد میشه.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۱۰:۱۷

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

  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۱۴:۳۹

    rewrite_module آپاچی رو فعال کردید؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - امین
  • NESTED

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۲۳۵۴
    تشکر شده: ۲۳۷۰ بار
    # نوشته شده: ۹ سال پیش
    ۷ دی ۱۳۹۰ - ۱۵:۰۰

    parselearn گفت:
    rewrite_module آپاچی رو فعال کردید؟

    خیلی خیلی ممنون
    این یکی خیلی عالی بود
    روی لوکال به راحتی کار کرد
    روی سرور هم براحتی کار کرد

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa

درباره‌ی این موضوع