it-swarm.com.de

Wie finde ich Plugins 'Slug?

Ich frage mich, wie ich die Plugins finden kann (slug = interner Name, der von WordPress verwendet wird, um Plugin-Updates durchzuführen und um festzustellen, welche Plugins derzeit aktiv sind). Es ist normalerweise der Ordnername des Plugins, aber wenn ein Plugin keinen Ordner hat, ist es der Dateiname (wie hello.php). Gibt es noch andere Ausnahmen?

  1. Sind Klein- und Großbuchstaben wichtig?
  2. Kann ein Plugin einen anderen Slug als seinen Ordnernamen haben? Was ist, wenn es ein Plugin namens hello.php und ein anderes /hello.php/hello.php gibt?
11
Paul

Die Zeichenfolge, die in WordPress zur Identifizierung des Plugins verwendet wird, lautet:

plugin_basename($file);

… Wobei $file eine Datei mit den Plugin Headern ist .

Also, wenn Sie in Ihrem Plugin sind, holen Sie sich den Slug mit:

$slug = plugin_basename( __FILE__ );
6
fuxia

Wenn Sie WP-CLI installieren, können Sie die Liste der Plugins mit ihrem Slug und ihrer Version über die Befehlszeile abrufen:

> wp plugin list

Ich weiß, das ist wahrscheinlich nicht das, was Sie wollen, wenn Sie den Slug-In-Code finden müssen, aber es hat mir bei der Arbeit mit dem TGM-Plugin-Activation-Plugin geholfen.

Ich finde es schwierig, mit WordPress ohne die WP-CLI zu arbeiten. Im Allgemeinen ist es ein sehr nützliches Werkzeug für viele allgemeine Aufgaben im Zusammenhang mit WordPress.

2
Thomas Bindzus

Nur um da den ursprünglichen Beitrag zu klären.

Die Art und Weise, wie ich den Plugin-Slug gefunden habe, besteht darin, zuerst zu Ihrem Plugin-Ordner zu navigieren, dann den mit dem Plugin verknüpften Ordner zu öffnen und schließlich die Datei zu finden, die den folgenden Code enthält. Sobald Sie diese Datei gefunden haben, sollte der Dateiname abzüglich der Erweiterung Ihr Plugin-Slug sein.

Wenn ich zum Beispiel den folgenden Code in einer Datei namens advanced-plugin-awesomeness.php gefunden hätte, wäre meine Schnecke advanced-plugin-awesomeness.

Hoffe das hilft!

/*
Plugin Name: Name of plugin here
Version: 2.4.6
Description: plugin description here
Author: plugin author here
0
Meatloaf4

Leider wird der Slug über die Update-API zurückgegeben. Die Antwort auf diese Frage ist nicht so offensichtlich, es sei denn, Sie fragen die API selbst ab. Wenn Sie jedoch eine Liste Ihrer aktuellen Plugin-Slugs und der zugehörigen Plugin-Daten anzeigen möchten, können Sie einfach Folgendes tun:

print_r(get_site_transient('update_plugins'));

Da dies jedoch für weitere 12 Stunden keine Informationen zu einem neu installierten Plugin enthält, müssten Sie für diese etwas anderes tun, z. Verwenden Sie eine geänderte Version des Codes aus wp_update_plugins in wp-includes/update.php...

Nachdem dies getan wurde, um es zu testen, scheint es zu bestätigen, dass es unabhängig vom Dateinamen oder der Position des Plugins oder Großbuchstaben tatsächlich der Plugin Name ist, der den Aktualisierungsfehler erzeugt, höchstwahrscheinlich über sanitize_title. Ich glaube also, die richtige Antwort sollte lauten:

// if you have the plugin basename:
// $pluginfile = WP_PLUGIN_DIR.'/'.$pluginbasename;

// otherwise if you have the absolute path already:
$plugin = get_plugin_data($pluginfile);
$pluginslug = sanitize_title($plugin['Name']);
0
majick

Sie können den Ordnernamen des Plugins (PHP5.3 +) ermitteln, indem SieDIRan plugin_basename () übergeben.

$plugin_foldername = plugin_basename( __DIR__ );
0
jb510

Versuche dies:

function get_slugname(){
    $tmp = array();
    $plugins_all = get_plugins() ;
    $plugin_slug = explode('/',dirname(plugin_basename(__FILE__)));
    foreach ($plugins_all as $key=>$value) {
        if ($plugin_slug[0] == explode('/',$key)[0] ) {
        $tmp = $value;
        $tmp['slug'] = explode('/',$key)[0];
        $tmp['file'] = explode('/',$key)[1];
        }
    }
return $tmp;
}
0
busy