• Resolved boeselhack

    (@boeselhack)


    Hi,

    I use your plugin in combination with the Web 2.0 directory plugin here:
    https://www.amstetten-marketing.at/amstettner-unternehmen/branche/dienstleistungen-beratung/edv-dienstleistungen/ (list view)
    I used it to be able to search through even more fields from the directory plugin.
    The order of the list changes to random order everytime I reload the page.
    There is an option to sort the common list view randomly in the directory plugin.
    But it doesn’t work in combination with the search function.

    If I click on ?Suchen“ (=Search) on the page above I get the same results every time I search for the same category (or search word).
    The directory plugin uses the native wordpress search function, so I fear the developer can’t (won’t) manipulate the order of the search results list.

    Is there a way for you to (easily) tweak your Extended Search plugin so that one could get a randomly sorted results list?

    Thanks in advance!
    Markus

    https://www.ads-software.com/plugins/wp-extended-search/

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author Sumit Singh

    (@5um17)

    Hi Markus,

    Sorry to say but WP forums do not allow us to provide support for commercial products. As I can not see directory plugin source code and how it works.
    You may ask to directory plugin support.

    Thanks

    Thread Starter boeselhack

    (@boeselhack)

    Hi Sumit,

    thanks for your response!
    The web directory plugin uses the basic wordpress search function as far as I know.
    That’s why the random search result list doesn’t work weithin his plugin…
    OK, thanks anyway!

    Bye
    Markus

    Plugin Author Sumit Singh

    (@5um17)

    Hi Markus,

    I am sorry I didn’t get you at first.
    WPES do not alter order or orderby in SQL. But by normal WordPress filter you can change the order of search results.

    here is the filter https://codex.www.ads-software.com/Plugin_API/Filter_Reference/posts_orderby use edit_posts_orderby example and return “RAND()”;

    Place everything in your function.php and also check for is_search()

    Let me know if it helps you.

    Thanks

    Thread Starter boeselhack

    (@boeselhack)

    Hi Sumit,

    thank you very much for the tip!
    It basically works with this filter added to the functions.php:

    // random search results list:
    add_filter('posts_orderby', 'edit_posts_orderby');
    
    function edit_posts_orderby($orderby_statement) {
    	$orderby_statement = "(gdsra.user_votes_total_sum/gdsra.user_votes_count) DESC";
    	return "RAND()";
    }

    Unfortunately it also randomizes the ?sticky entries“ like here:
    https://goo.gl/FA2yzl

    I’ll have to contact the developer of the web directory plugin for that.
    Thank you very much again!

    Plugin Author Sumit Singh

    (@5um17)

    Hi,

    I guess you forgot to check is_search()
    Please check this code

    // random search results list:
    add_filter('posts_orderby', 'edit_posts_orderby');
    function edit_posts_orderby($orderby_statement) {
        if (is_search()) {
            $orderby_statement = "RAND()";
        }
        return $orderby_statement;
    }

    Thread Starter boeselhack

    (@boeselhack)

    Hi Sumit,

    the sticky entries are on top now, but the other results don’t get randomized with your new code.
    Do you have another tip for me?

    Thanks in advance!
    Markus

    Plugin Author Sumit Singh

    (@5um17)

    Hi Markus,

    Then theme must be using some custom query. You may ask on theme support about this issue with this code https://www.ads-software.com/support/topic/random-search-results-order?replies=7#post-7145279

    Because it is working fine with twenty fifteen theme.

    Thanks

    Thread Starter boeselhack

    (@boeselhack)

    Hi Sumit,

    a friend of mine already found a solution with this hook:

    add_filter( 'posts_clauses', 'dix_custom_query', 510, 2);
    function dix_custom_query($search, $wp_query) {
    	if (strstr($search['orderby'], 'w2dc')) {
    		$search['orderby'] = 'w2dc_levels.sticky DESC, w2dc_levels.featured DESC, RAND()';
    	}
    #debugster ($wp_query->query_vars['ignore_sticky_posts']);
    	return $search;
    }

    maybe this helps somebody sometime…
    thanks for your effort, sumit!

    bye
    markus

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Random search results order’ is closed to new replies.