プラグイン(メイン)ファイルとプラグインのスラッグの違いは、WordPress Codexがはるかに優れている場所です。あまりにも最近感じたので、あなたの混乱を理解しました(欲求不満と混同して)。
これは、WordPressのコアコードで「探偵の仕事」をすることで学んだことです。
プラグインファイル
これは、WordPressがプラグインを識別して記録するユニークな方法です。これは、プラグインのディレクトリとメインプラグインファイル(バージョン、作成者などのさまざまなプラグインの詳細を含むファイルヘッダーがあるファイル)で構成されています。
次のようになります。 your-plugin-directory/main-file.php
アクティブなプラグインデータ(によって返されるget_option( 'active_plugins' )
)を見ると、WordPressはプラグインを正しく識別するためにこのプラグインファイルのみを必要としていることがわかります。
あなたはそれをあなたのプラグインのメインファイルの相対パス(wp-content/plugins/
それが存在するディレクトリに対する相対パス)と考えることを選ぶことができます。メインプラグインファイルの絶対パスを次のように「構成」できます。trailingslashit( WP_PLUGIN_DIR ) . $plugin_main_file
コア自体が次のようなプラグインファイルを生成します。
$plugin_main_file = plugin_basename( trim( $plugin_main_file_absolute_path ) );
プラグインのスラッグ
プラグイン「スラッグ」は、ポストスラッグがポストの場合と同様に、プラグインのある種の標準化されたIDであると予想されます。そのため、この「スラッグ」を使用して、WordPressコア関数にプラグインを提供し、物事を進めることができます。
あんまり。プラグインスラグ(または重要なテーマ)への参照をコアで検索し、ほとんど何も見つからなかった後、私はそれを理解していると思います。
唯一の本当のナメクジは(記事のタイトルのような)何かの名前を取って、そのURLに適したバージョンを生成するの全体のポイントであることを投稿、ページ、分類法など:ユニークなURLを介してアクセスできるもののためのものである使用にそれをURLに入れます。
しかし、URLでテーマ/プラグインの「スラッグ」をどこで使用するのでしょうか。
WP管理者またはフロントエンドのどちらでも、個々のWordPressインストールではこれを行いません。
しかし、WordPressのコードと非常に絡み合っている場所、WordPress.orgサイトがあります。開発者の間でWordPress.orgのテーマやプラグインのスラッグが投稿やページのスラッグと同じように機能することを考えるのが一般的であるなど、人々はこの2つを区別するのに苦労しています。
それらは同じ目的を果たしますが、別々の Webサイトにあります。WordPress.orgでは、他のテーマを一意に識別し、残りのプラグイン(などのURL https://wordpress.org/plugins/akismet/
)をプラグインで識別するために使用されます。
しかし、個々の WordPressインストールに関しては、それを強制する権限がないため(WordPress.orgのように)、同じ一意性を保証できません。すべてのプラグインとテーマがWordPress.orgからのものであれば機能しますが、ありがたいことにそうではありません。
WordPressコードはテーマ/プラグインのスラッグで何をしますか?
WordPressコアコードは、テーマまたはプラグインのインストール、アクティブ化、更新、削除などを行うためにテーマ/プラグインスラグに依存しません。
テーマの場合、テーマへの主要なエントリポイントがstyle.css
ファイルであるため、テーマディレクトリに依存します(別のCSSファイルを使用してテーマの詳細ヘッダーを保持することはできません)。
プラグインの場合、プラグインはメインファイルを自由に呼び出すことができるため、プラグインディレクトリとメインプラグインファイルに依存します。
コアがテーマ/プラグインのスラッグを使用する唯一のことは、WordPress.orgディレクトリからテーマとプラグインを処理するときです:プラグインのリストの取得、更新の確認、ディレクトリ使用状況データへのレポートなど。
プラグインスラグについてまとめる:slug
エントリのあるプラグインデータを見つけると、99%の確率でプラグインのWordPress.orgスラグを参照します。
プラグインを特定するにはどうすればよいですか?
プログラムでWordPressインストールの特定のプラグインをアクティブ化、更新、非アクティブ化、または削除する場合は、プラグインファイルを使用する必要があります。プラグインのメインファイルから次のように取得できます。
$plugin_file = plugin_basename( __FILE__ );
別のプラグインから特定のプラグインをターゲットにしたい場合、少しの「推測」に頼る必要があるため、事態は少しトリッキーになります。
プラグイン名をハードコードし、すべてのプラグインのリストでプラグインを検索し(get_plugins()を参照)、そこからプラグインファイルを取得できます。
あなたはリフレクションを使用できるプラグインそれによって定義されたクラスや関数を知っている場合(参照このクラスのための答えと、この1の機能のために)。
これが「プラグインのナメクジ」を扱うのに苦労しているあなたや他の人たちの助けになることを願っています。数時間節約できたかもしれません:)