رفتن به مطلب

نتایج جستجو با دسته بندی


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

سلام

وقتی کلمه ایی رو جستجو میکنم، نتایجش در هر دسته ایی باشه همه رو نمایش میده. چطوری میتونم دسته بندی کنم. مثلا اولا یک دسته خاص نمایش داده بشه یا یک دسته اصلا توی نتایج جستجو نیاد

لینک به ارسال

سلام مطالعه بفرمایید

https://wordpress.stackexchange.com/questions/91993/order-search-results-by-category
https://wordpress.stackexchange.com/questions/39817/sort-results-by-name-asc-order-on-archive-php
https://wordpress.stackexchange.com/questions/181789/group-search-results-by-post-type

 

لینک به ارسال
در در ۱۳۹۹/۴/۱۷ در 01:21، asadiy4n گفته است :

سلام مطالعه بفرمایید


https://wordpress.stackexchange.com/questions/91993/order-search-results-by-category
https://wordpress.stackexchange.com/questions/39817/sort-results-by-name-asc-order-on-archive-php
https://wordpress.stackexchange.com/questions/181789/group-search-results-by-post-type

 

سلام. ضمن تشکر. سایت اولی که معرفی کردین این کد رو داده: 

function wpse_91993_order_search( $query ) {

    if ( ! $query->is_main_query() && ! $query->is_search() )
        return;

    $terms = get_terms( 'category', array( 'fields' => 'ids' ) );
    $tax_query_args = array(
        array(
            'taxonomy' => 'category',
            'field'    => 'id',
            'terms'    => $terms
        )
    );
    $query->set( 'tax_query', $tax_query_args );

    /**
     * the filte callback
     * removes itself from the applied filter
     *
     * @wp-hook posts_orderby
     * @param string $sql (Default oderby clause)
     * @param WP_Query $query
     * @uses $terms which are allready in the correct order
     * @return string
     */
    $orderby_terms = function( $sql, $query ) use ( $terms, &$orderby_terms ) {
        $field = $GLOBALS[ 'wpdb' ]->term_relationships . '.term_taxonomy_id';
        $terms = array_map( 'intval', $terms );
        $sql = sprintf(
            'FIELD( %1$s, %2$s ) ',
            $field,
            implode( ', ', $terms )
        );
        remove_filter( current_filter(), $orderby_terms );

        return $sql;
    };
    add_filter( 'posts_orderby', $orderby_terms, 10, 2 );
}
add_action( 'pre_get_posts', __NAMESPACE__ . '\wpse_91993_order_search' );

منم به فایل search.php اضافه کردم ولی درست نشد. چه باید بکنم؟

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

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

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

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

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

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

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

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

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

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