Support » Plugin: Relevanssi - A Better Search » Too few arguments to function relevanssi_prevent_default_request()

  • Resolved aryanduntley

    (@dunar21)


    I’m getting this error in my error logs. Any idea the cause? It seems all calls to this in your code are passing two parameters.

    2017/06/13
    15:39:27 [error] 121306#0: *78296689 FastCGI sent in stderr: “PHP
    message: PHP Fatal error: Uncaught ArgumentCountError: Too few
    arguments to function relevanssi_prevent_default_request(), 1 passed in
    …/public/wp-includes/class-wp-hook.php on line
    298 and exactly 2 expected in
    …/public/wp-content/plugins/relevanssi/lib/common.php:447
    Stack trace:
    #0 …/public/wp-includes/class-wp-hook.php(298): relevanssi_prevent_default_request(‘SELECT wp_posts…’)
    #1 …/public/wp-includes/plugin.php(203): WP_Hook->apply_filters(‘SELECT wp_posts…’, Array)
    #2

Viewing 6 replies - 1 through 6 (of 6 total)
  • Looks like the posts request filter only takes 1 argument…
    https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_request

    And you are asking for two in your hook in init.php

    add_filter('posts_request', 'relevanssi_prevent_default_request', 10, 2 );

    Plugin Author Mikko Saari

    (@msaari)

    No, it actually has two parameters. See the source code or Code reference.

    I’ve never seen this error, and can’t reproduce it. Can you tell me what’s happening when the error is generated?

    Hmm. Source code shows one argument, an array. And the code reference is a bit ambiguous, the code example seems to indicate two parameters, but the parameter description notes only one parameter, the $request which can either be a string or a WP_Query instance.

    Nothing is happening and all seems to be working ok.. I am just getting this error in my server logs and it seems to be correct, I see only one valid parameter in the source code and the code reference example seems to be incorrect.

    Although the source code notes seem to indicate also that there are two parameters, only one is being passed.

    Sorry, it’s apply_filters_ref_array. You are correct.

    Again, I apologize. The error was being caused by another plugin that was using
    apply_filters('posts_request', $request);
    It was a very old plugin. This threw the error from relevanssi because it was applying the filter to the relevanssi call as well and that relevanssi call was passing that non-existent parameter to relevansi_prevent_default_request and that lead to the fatal error.

    • This reply was modified 1 year, 10 months ago by  aryanduntley.
Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Too few arguments to function relevanssi_prevent_default_request()’ is closed to new replies.