FlatPress: Nachschlag zum Kommentarspam

Der Workaround aus meinem gestrigen Eintrag FlatPress: Kommentarspam trotz QuickSpamFilter? hat mir keine Ruhe gelassen, weshalb ich mich heute noch einmal ausführlicher damit befasst habe.

Bei meiner Suche im Netz stieß ich auf den Beitrag Reducing priority of Flatpress Comment Center aus dem Jahr 2012. Das ist also gerade mal 10 Jahre her. ;-)

Dort steht:

Flatpress Comment Center by default runs at a priority of 5.

This level causes problems when integrating with other comment filters, such as Akismet, QuickSpamFilter, reCapctha, etc. The other filters can flag a comment as unacceptable, yet the Flatpress Comment Center will happily store it. Consequently I have reduced its priority to 15 on my installation, allowing other filters a chance to do their job.

Das Problem war also offenbar schon damals bekannt. Aber wie kommt der Autor Ross Fruen auf eine Priorität von 5?

Ich tauchte also in den PHP-Quellcode von FlatPress ab.

In fp-plugins/commentcenter/plugin.commentcenter.php fand ich:

add_filter('comment_validate', array(
    &$this,
    'validate'
), 5, 2);

Und in fp-plugins/qspam/plugin.qspam.php:

add_action('comment_validate', 'plugin_qspam_validate', 5, 2);

In fp-includes/core/core.wp-plugin-interface.php:

function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
[...]
}

[...]
function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
        add_filter($tag, $function_to_add, $priority, $accepted_args);
}

add_action() ist demnach lediglich ein Alias für add_filter()[.

Wir haben hier also zwei Plugins, die an derselben Stelle (comment_validate) ansetzen und dieselbe Priorität verwenden. In so einem Fall scheint dann die "Ladereihenfolge" der Plugins über Wohl und Wehe zu entscheiden.

Ich habe nun, wie von Ross vorgeschlagen, die Priorität des "Comment Center" von 5 auf 15 geändert (größere Zahl = niedrigere Priorität) und den gestrigen Workaround rückgängig gemacht. Meine Tests mit dieser neuen Konfiguration waren bislang erfolgreich. :-)

Schlagworte: