it-swarm.com.de

Deaktivieren Sie das Plugin in älteren Versionen von WordPress

Also, wenn ein Plugin nie auf einer älteren Version von WordPress installiert werden sollte, was ist der beste Weg, dies zu tun? Was ich normalerweise mache, ist ungefähr so:

if ( ! function_exists( 'get_post_format' ) ) {
    $error_handler = set_error_handler( 'my_plugin_die' );
    trigger_error( '', E_USER_ERROR );
}

function my_plugin_die( $errno, $errstr, $errfile, $errline ) {
    global $wp_version;
    exit( 'This plugin requires WordPress version 3.0 or greater. You are currently using version ' . $wp_version . '. Please <a target="_top" href="' . esc_url( admin_url( 'update-core.php' ) ) . '">upgrade to the latest version of WordPress</a> before installing this plugin.' );
}

Ich platziere dies direkt in der Plugin-Datei - außerhalb jeder Klasse. Es scheint in allen meinen Tests gut zu funktionieren, scheint aber ziemlich hart zu sein. Gibt es eine Chance, dass ein Plugin mit diesem Code jemals aktiviert wird?

Wie gehen Sie mit solchen Situationen um? Es scheint absolut keine Dokumentation zu solchen Dingen zu geben.

3
mfields

Ich denke, Sie verfolgen den richtigen Ansatz: Versionskontrolle und Tod. Das einzige, was ich empfehlen könnte, wäre, es in den Plugin-Aktivierungs-Hook einzuhängen.

Aus Neugier: Warum verwenden Sie nicht wp_die() ( Codex ref )?

Als Randnotiz: Ich würde gerne sehen, dass die Theme- und Plugin-Repositorys eine Art von UI ähnlich wie AMO implementieren, die anzeigt, ob ein bestimmtes Theme/Plugin mit der aktuellen WordPress-Version des Benutzers kompatibel ist . Plugins haben ein Requires: WordPress-Versions-Header-Tag, das für diese Funktionalität ausreicht, und ich denke, dass Themes dasselbe genauso einfach implementieren könnten.

p.s. Ich würde dringend empfehlen gegen unter Verwendung der "Kompatibilitätsbewertung"; Diese Funktionalität ist mehr als kaputt.

1
Chip Bennett