Web サイト上の WordPress.org プラグインに関する情報を表示します。
この記事の最初の部分では、組み込み関数を使用して WordPress.org と通信し、プラグインの詳細を取得する方法について説明しました。
このチュートリアルでは理論を実践し、ショートコードを使用して WordPress.org でホストされているプラグインの詳細を WordPress Web サイトに表示できるようにする簡単なプラグインを作成します。 p>
使い始める
あなたはプラグイン開発者であり、基本を知っていると思いますが、疑問がある場合は、次の 2 つの記事を読むことをお勧めします。
- WordPress プラグイン開発の 2 つのアプローチ: 関数型プログラミング
- WordPress プラグインを開発する 2 つのアプローチ: オブジェクト指向プログラミング
私たちは何をしているのでしょうか?
このプラグインでは、[mpi slug='my-plugin-information' field='version']
のようなショートコードを作成します。これは、「slug」と「slug」の 2 つの属性を受け入れることができます。 「フィールド」に基づいて、WordPress.org リポジトリでホストされているプラグインの情報を取得して表示します。
プラグインライブラリの作成
まず、wp-content/plugins ディレクトリ内に my-plugin-information というフォルダーを作成します。その中に my-plugin-info.php という名前のファイルを作成し、次のコードを貼り付けます:
リーリー私たちは何をしましたか?
上記のコードでは、プラグイン クラス DOT_MyPluginInfo
を作成して初期化します。これには、__construct()
メソッドなど、あらゆるプラグインに共通のブロックが含まれています。
関数 init_my_plugin_info
init
アクションにフックして、WordPress がロードされた後、ヘッダーが送信される前に実行されるようにします。関数 init_my_plugin_info
では、add_shortcode
関数を使用してショートコードを登録します。
注: add_shortcode
の詳細については、コーデックスを確認してください。
上記のプラグインには、WordPress がプラグイン ダッシュボードから認識できる十分なコードが含まれています。指示に従ってファイルを作成した場合は、プラグイン ページにアクセスして、このプラグインをアクティブ化できます。
ショートコードを設定する
プラグインに関して表示する情報を柔軟に選択できるようにしたかったため、2 つのプロパティを持つショートコードを作成しました。 「slug」と呼ばれる最初のものは、どのプラグインのデータを取得する必要があるかを指定するために使用されます。 2 番目の属性「フィールド」は、表示する必要があるプラグインの特定の情報を指定するために使用されます。
たとえば、プラグインのダウンロード数を表示したい場合は、ポスト エディターの下にテキストを追加するだけで、最終結果は「100 回ダウンロードされました」のようなものになるはずです。 p> リーリー
add_shortcode を使用してショートコードを登録し、投稿コンテンツ内でショートコードが見つかるたびに、関数
render_mpi() が呼び出されて処理されます。今後、残りのコードはこの関数内に配置され、ショートコードを処理します。
render_mpi() を使用します
プラグイン情報を表示するには、まずショートコードを処理して属性を取得する必要があります。 render_api 関数に次のコードを追加します:
リーリー
リーリー
上記のコードは、「slug」が存在するかどうかをチェックし、存在しない場合は false を返します。 「slug」が存在する場合は、引き続き「field」属性のチェックが行われます。プラグインに関する特定の情報を表示するショートコードを作成しているだけなので、さらに処理を進める前にこれら 2 つのプロパティの存在を確認することで、WordPress.org プラグイン API への不要な呼び出しを節約できます。ここで、「slug」属性と「field」属性の値がショートコードで提供されている場合、最初にこれら 2 つの値を削除します。
リーリー
プラグイン データを一時的な状態で保存するこのショートコードを含むページが読み込まれるたびに WordPress.org にリクエストを送信しないようにするには、プラグイン情報をローカルに保存する必要があります。このようにして、同じプラグインの異なる詳細を表示する複数のショートコードを配置する場合、サイト上でローカルに保存された情報のデータを表示することでプロセスを高速化できます。
しかし、プラグインが更新されても古いデータが表示され続けたらどうなるでしょうか? この問題を解決するには、Transients API を使用して個人のプラグイン データを保存し、有効期限データを設定するのが最も簡単なオプションです。
もう 1 つの問題は、さまざまなプラグインに関するデータを取得するショートコードがある場合です。単一の一時的な名前を使用してそれらを保存すると、予期しない結果が生じる可能性があります。この問題を解決するには、「slug」属性を使用して、保存されたトランジェントに一意の名前を付けます。
为什么要经历这一切?
- 单独保存每个插件的信息
- 减少向 WordPress.org 发出的请求
- 通过直接从您自己的网站提供数据来更快地加载数据
让我们首先创建一个变量 $mpi_transient_name
来保存基于“slug”属性的唯一瞬态名称。
// Create a empty array with variable name different based on plugin slug $mpi_transient_name = 'mpi-' . $slug;
接下来我们检查瞬态是否已经存在:
/** * Check if transient with the plugin data exists */ $mpi_info = get_transient( $mpi_transient_name );
如果瞬态存在,我们将继续根据“field”属性显示数据,否则我们使用 plugins_api
连接到 WordPress.org 并请求插件信息。
if ( empty( $mpi_info ) ) { /** * Connect to WordPress.org using plugins_api * About plugins_api - * https://code.tutsplus.com/tutorials/communicating-with-the-wordpress-org-plugin-api--wp-33069 */ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $mpi_info = plugins_api( 'plugin_information', array( 'slug' => $slug ) ); // Check for errors with the data returned from WordPress.org if ( ! $mpi_info or is_wp_error( $mpi_info ) ) { return false; } // Set a transient with the plugin data // Use Options API with auto update cron job in next version. set_transient( $mpi_transient_name, $mpi_info, 1 * HOUR_IN_SECONDS ); }
在上面的代码中,我们做了三件事:
- 我们连接到 WordPress.org 并请求插件信息。然后该请求被保存在名为
$mpi_info
的变量中 - 然后我们进行错误检查,以确保返回的数据是否没有错误
- 最后,我们创建了一个过期日期为一小时的新瞬态
现在,如果 slug 属性的值为“my-plugin-information
”,那么存储插件信息的瞬态名称将为“mpi-my-plugin-information
”。
注意:要了解有关 plugins_api
的更多信息,请参阅本系列的第一篇文章,如本文顶部所示。
显示插件信息
最后一步涉及根据“field”属性的值返回特定信息。为此,我们只需使用单独的检查即可。
if ( $field == "downloaded" ) { return $mpi_info->downloaded; } if ( $field == "name" ) { return $mpi_info->name; } if ( $field == "slug" ) { return $mpi_info->slug; } if ( $field == "version" ) { return $mpi_info->version; } if ( $field == "author" ) { return $mpi_info->author; } if ( $field == "author_profile" ) { return $mpi_info->author_profile; } if ( $field == "last_updated" ) { return $mpi_info->last_updated; } if ( $field == "download_link" ) { return $mpi_info->download_link; }
总结
完整的插件代码:
<?php /* Plugin Name: My Plugin Information Plugin URI: https://code.tutsplus.com Description: Communicate with WordPress.org Plugins API to retrive your Plugin Information Version: 0.1.1 Author: Harish Author Email: me@email.com License: Copyright 2013 Harish This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( ! class_exists( 'DOT_MyPluginInfo' ) ) { class DOT_MyPluginInfo { /** * Constructor */ function __construct() { //Hook up to the init action add_action( 'init', array( &$this, 'init_my_plugin_info' ) ); } /** * Runs when the plugin is initialized */ function init_my_plugin_info() { // Register the shortcode [mpi slug='my-plugin-info' field='version'] add_shortcode( 'mpi', array( &$this, 'render_mpi' ) ); } function render_mpi($atts) { // get our variable from $atts extract(shortcode_atts(array( 'slug' => '', //foo is a default value 'field' => '' ), $atts)); /** * Check if slug exists */ if ( ! $slug ) { return false; } /** * Check if field exists * Return value based on the field attribute */ if ( ! $field ) { return false; } else { // Sanitize attributes $slug = sanitize_title( $slug ); $field = sanitize_title( $field ); // Create a empty array with variable name different based on plugin slug $mpi_transient_name = 'mpi' . $slug; /** * Check if transient with the plugin data exists */ $mpi_info = get_transient( $mpi_transient_name ); if ( empty( $mpi_info ) ) { /** * Connect to WordPress.org using plugins_api * About plugins_api - * https://code.tutsplus.com/tutorials/communicating-with-the-wordpress-org-plugin-api--wp-33069 */ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); $mpi_info = plugins_api( 'plugin_information', array( 'slug' => $slug ) ); // Check for errors with the data returned from WordPress.org if ( ! $mpi_info or is_wp_error( $mpi_info ) ) { return false; } // Set a transient with the plugin data // Use Options API with auto update cron job in next version. set_transient( $mpi_transient_name, $mpi_info, 1 * HOUR_IN_SECONDS ); } if ( $field == "downloaded" ) { return $mpi_info->downloaded; } if ( $field == "name" ) { return $mpi_info->name; } if ( $field == "slug" ) { return $mpi_info->slug; } if ( $field == "version" ) { return $mpi_info->version; } if ( $field == "author" ) { return $mpi_info->author; } if ( $field == "author_profile" ) { return $mpi_info->author_profile; } if ( $field == "last_updated" ) { return $mpi_info->last_updated; } if ( $field == "download_link" ) { return $mpi_info->download_link; } } // $field check } // render_mpi() } // end class new DOT_MyPluginInfo(); } ?>
此插件代码可在 GitHub 上找到,您也可以从 WordPress.org 下载
付诸行动
现在您只需转到帖子编辑器并添加一个短代码,例如:
Downloaded [mpi slug='my-plugin-information' field='downloaded'] times.
它会显示:
Downloaded 10 times.
显示有关插件的其他信息的示例简码
通过替换“field”属性的值,您可以显示不同的信息,例如:
- 插件名称:
[mpi slug='my-plugin-information' field='name']
- 插件版本:
[mpi slug='my-plugin-information' field='version']
- 插件 Slug:
[mpi slug='my-plugin-information' field='slug']
- 插件作者(返回名称和链接):
[mpi slug='my-plugin-information' field='author']
- 作者简介(返回个人资料地址):
[mpi slug='my-plugin-information' field='author_profile']
- 最后更新:
[mpi slug='my-plugin-information' field='last_updated']
- 下载链接:
[mpi slug='my-plugin-information' field='download_link']
改进
为了简单起见,我使用瞬态来保存插件信息。然而,瞬态从来就不是用来保存重要数据的。另一种方法是使用选项 API、add_options()
或作为 post meta 保存插件数据,然后安排一个 cron 任务每小时更新一次数据。
接下来做什么?
使用 plugins_api
,我们已经演示了通信和检索 WordPress.org 上托管的任何插件的信息是多么容易。
您可能还想查看其他插件,例如 Plugin Info(也使用 plugins_api
和 I Make Plugins,看看它们如何完成相同的任务。
以上がWeb サイト上の WordPress.org プラグインに関する情報を表示します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

ブログは、人々が自分の意見、意見、意見をオンラインで表現するための理想的なプラットフォームです。多くの初心者は自分のウェブサイトを構築することに熱心ですが、技術的な障壁やコストの問題を心配することをためらっています。ただし、プラットフォームが初心者の能力とニーズを満たすために進化し続けるにつれて、今まで以上に容易になり始めています。 この記事では、テーマの選択からプラグインの使用まで、セキュリティとパフォーマンスを向上させ、独自のWebサイトを簡単に作成できるように、WordPressブログを構築する方法を段階的に導きます。 ブログのトピックと方向を選択してください ドメイン名を購入したり、ホストを登録する前に、カバーする予定のトピックを特定することをお勧めします。個人的なウェブサイトは、旅行、料理、製品のレビュー、音楽、またはあなたの興味を引き起こす趣味を中心に展開できます。あなたが本当に興味を持っている領域に焦点を当てることは継続的な執筆を奨励することができます

wordpressisisgoodforvirtalayanywebprojectoitsversitilityasacms.itexcelsin:1)ユーザーフレンドリー、柔軟性と柔軟性と顧客化の維持、およびプルージンの数値化; 3)seooptimization;

3日以内にWordPressを学ぶことができます。 1.テーマ、プラグインなどのマスター基本知識。2。インストールや作業原則などのコア関数を理解します。 3.例を使用して、基本的および高度な使用法を学びます。 4.デバッグテクニックとパフォーマンスの最適化の提案を理解します。

最近、ユーザーがお気に入りの投稿をパーソナライズされたライブラリに保存できるようにすることで、ユーザー向けのパーソナライズされたエクスペリエンスを作成する方法を示しました。一部の場所で名前を使用することで、パーソナライズされた結果を別のレベルに引き上げることができます(つまり、ウェルカム画面)。幸いなことに、WordPressにより、ユーザーのログインに関する情報を簡単に入手できます。この記事では、現在ログインしているユーザーに関連する情報を取得する方法を紹介します。 get_currentuserinfo()を使用します。 関数。これは、テーマ(ヘッダー、フッター、サイドバー、ページテンプレートなど)のどこでも使用できます。それが機能するためには、ユーザーをログインする必要があります。したがって、使用する必要があります

WIXは、プログラミングの経験がないユーザーに適しており、WordPressは、よりコントロールと拡張機能を必要とするユーザーに適しています。 1)WIXはドラッグアンドドロップエディターとリッチテンプレートを提供しているため、Webサイトをすばやく構築できます。 2)オープンソースのCMSとして、WordPressには巨大なコミュニティとプラグインエコシステムがあり、詳細なカスタマイズと拡張をサポートしています。

親カテゴリアーカイブページに子カテゴリを表示する方法を知りたいですか?分類アーカイブページをカスタマイズするときは、訪問者にとってより便利にするためにこれを行う必要がある場合があります。この記事では、親カテゴリアーカイブページに子カテゴリを簡単に表示する方法を示します。サブカテゴリが親カテゴリアーカイブページに表示されるのはなぜですか?親カテゴリアーカイブページにすべての子カテゴリを表示することにより、訪問者にとってより一般的で便利になります。たとえば、本に関するWordPressのブログを実行し、「テーマ」と呼ばれる分類法を持っている場合、「小説」、「ノンフィクション」などのサブ課題を追加して、読者ができるようにすることができます。

ユーザーの1人が、フッターにクエリの数とページの読み込み時間を表示する方法を他のWebサイトに尋ねました。これをウェブサイトのフッターでよく見ることがよくあり、「1.248秒で64クエリ」のようなものを表示する場合があります。この記事では、WordPressにクエリの数とページの読み込み時間を表示する方法を紹介します。テーマファイル(たとえば、footer.php)で好きな場所に次のコードを貼り付けます。クエリエシン
