انجمن


افزودن فیلتر به زمان پیش از parse شدن query string  (۳ نوشته)

  • arashdalir

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

    درود فراوان!
    همون طور که احتمالن می‌دونین، وردپرس فیلتری داره برای دست‌کاری urlها به نام category_link که منطقن هر کاری می‎شه با url یه وب‌سایت انجام داد. برای مثال می‌شه کاری کرد که پیوند صفحه‌ها به صورت /fa/category/something/ در بیان. اما از طرف دیگه نیاز هست که یه فیلتر به زمان parse شدن query افزوده بشه که به کمک اون بشه پیش از این که وردپرس کوئری صفحه رو کنترل می‌کنه، اون کوئری رو تغییر داد. من این رو خودم توی نسخه‌ای که دریافت کردم تغییر دادم. در خط 184 از تابع parse_query در کلاس WP در فایل class-wp.php چنین خطی رو اضافه کردم:
    $request = apply_filters( 'pre_parse_query', $request);
    نمی‌دونم که باید این درخواست رو از این‌جا داشته باشم یا از خود وردپرس، ولی سپاسگزار می‌شم اگر بهم بگین که برای قرار گرفتن چنین چیزی در کد اصلی باید چه بکنم!
    سپاس فراوان

  • Morteza

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

    من دقیقا متوجه نشدم که در نهایت چه کاری میخواید انجام بدید. اما میشه از طریق فایل functions.php هم فیلتر رو انجام داد.

  • arashdalir

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

    درود، می‌دونم که می‌شه در functions.php، تابعی رو به یه فیلتر اختصاص داد که از هنگام بروز اون، تابع فراخوانی بشه، مشکل این‌جاس که چنین فیلتری برای دست‌کاری کوئری پیش از خونده شدنش توسط وردپرس وجود نداره. من الان نیاز دارم که این فیلتر رو به کد وردپرس اضافه کنم. برای این که فیلتری در یک زمان مشخص اجرا بشه، باید خطی مشابه اون چیزی که من در بالا ذکر کردم و این​‌جا هم دوباره قرار می‌دم:
    request = apply_filters( 'pre_parse_query', $request);
    وجود داشته باشه تا کد رو مجبور کنه که در هنگام رسیدن به این خط؛ تابع‌های متصل به فیلتر "pre_parse_query" رو اجرا کنه. این کد الان در اون تابع وجود نداره و من دستی برای کد نسخۀ خودم اون رو نوشتم. در واقع می‌خوام که اگر بشه این خط به کد پایه‌ای وردپرس افزوده بشه که در نتیجه‌ش 1) در هنگام به روز رسانی‌های بعدی کد دچار مشکل نشه و 2) امکان استفاده از چنین فیلتری برای همۀ طراح‌های افزونه‌ها فراهم بشه...

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



برچسب‌ها