Home » Dév & Code

Gengo : résoudre l’erreur Call to a member function wp_rewrite_rules() on a non-object in /wp-includes/classes.php

27 octobre 2009 2 Comments

Gengo, plugin de wordpress pour le multilinguisme, entre en conflit avec certains plugins lors de leurs installation.

Le code d’erreur est de la forme :

Fatal error: Call to a member function wp_rewrite_rules() on a non-object in /wp-includes/classes.php on line ...

que se passe t il donc pour obtenir cette erreur ?

En simplifiant, cette erreur survient lorsqu’un plugin essaye de définir sa langue avant que Gengo soit chargé, et que la fonction du plugin enquestion « load_plugin_textdomain » doit être encapsulée dans une autre fonction appelée au init pour fonctionner.

Là vous êtes paumés et vous sortez un mouchoir, oui je sais. Mais en fin de compte ce n’est pas si compliqué que cela.

Par exemple pour le plugin Cforms qui entre en conflit avec Gengo, en allant /plugins/cforms/cforms.php, on a à la ligne 33 :
load_plugin_textdomain('cforms');

Et c’est cette ligne de code qui pose souci, il faut l’encapsuler dans une autre fonction et l’appeler au init pour que tout rentre dans l’ordre.

Donc
load_plugin_textdomain('cforms');
devient
function cforms_load_textdomain() {
load_plugin_textdomain('cforms');
}
add_action('init', 'cforms_load_textdomain');

Un autre exemple ? Cette fois-ci avec MailPress, plugin d’envoide newsletter pour wordpress, qui pose lui souci avec Gengo.
Là encore, en allant dans /plugins/mailpress/Mailpress.php, on a ligne 34 :

// for gettext
load_plugin_textdomain('MailPress', MP_PATH . 'mp-content/languages');

Sur le même principe, la solution afin que tout fonctionne correctement est :
function mailPress_load_textdomain() {
//load_plugin_textdomain('cforms');
load_plugin_textdomain('MailPress', MP_PATH . 'mp-content/languages');
}
add_action('init', 'mailPress_load_textdomain');

2 Comments »

  • Loïc said:

    Comment t’es trop fort mike!!! :)

  • admin (author) said:

    lol pedro

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.

Website Feedback
Feedback Analytics