シリーズのこの時点で、ファイル、クラス、関数、変数などを文書化してプラグインを完成させる準備が整いました。
これは実際にプラグインを完成させる最後のステップですが、オブジェクト指向プログラミングの高度なトピックを引き続き見ていきますので、これがシリーズの最後の記事ではありません。
しかし、その前に、前の記事で学んだことをすべて実践し、プラグインをバージョン 1.0 にアップグレードしましょう。
もちろん、これまでのすべての 記事と同様に、これまでに取り上げたすべての内容を常に最新の状態に保つことをお勧めします。そうすることで、前回の記事で行ったことを完全に理解するだけでなく、どのように行うのかを理解していただくことができます。実際に、この記事で説明した最後の点に到達します。
###導入### ###コース### ###タイプ###各ファイルを一度に記録し、各ファイルに含まれるすべてについて簡単に議論することができます。
これを行うために、プラグインをファイルごとに調べ、コードの各部分のドキュメントを紹介し、コードの背後にある重要な点について説明します。
以下は、このファイルの完全に文書化されたバージョンです。各レビューを注意深く読み、その形式に従っているだけでなく、提供されている内容にも注意してください。
リーリー
上記のコードでは、前の記事で概説した規則に従ってファイル ヘッダーを定義していることに注意してください。また、WordPress が正しく読み取れるように、必要なプラグイン ヘッダー タグも維持します。この例では、カスタム
最後に、このプラグインのバージョンを
1.0
にアップグレードし、@package
value="inline" をプラグイン >SPMM# に割り当てたことに注意してください。##シングル ポスト メタ マネージャーがありません。これをプラグイン全体で使用します。
含まれるディレクトリ
次に、インクルード ディレクトリ内のすべてのファイルに注目してみましょう。
これらのファイルはディレクトリで何かを管理する前に必要であるため、これらの各ファイルを個別に確認してから、管理対象ディレクトリ内の残りのファイルについての説明を終えるのが合理的です。
シングルポストメタマネージャー
多数の新しいコメントが導入されていますが、各クラス属性、コンストラクター、内部関数の役割は一目瞭然です。
ただし、ドキュメント
内の特定のタグや機能が関連性がない場合に
使用されない場合、当社はそれらを自由に使用することに注意してください。この記事の残りの部分でもこれを続けていきます。リーリー このクラスは、プラグイン全体で使用されるすべてのアクションとフィルターを調整するため、多かれ少なかれプラグインのコアコンポーネントであることに注意してください。このプラグインは、プラグイン全体で使用されるフックのすべての登録と調整を一元管理します。
最後に、run
が呼び出されると、すべてのフックが WordPress に登録されるため、プラグインが開始されると、登録されているすべてのアクションとフィルターが呼び出されます。管理者ディレクトリ
この時点で、プラグイン管理ディレクトリにあるファイルに注目する準備が整いました。ではこれに関するドキュメントを
定義しています。
それでは、
admin
シングルポストメタマネージャー管理者
<?php /** * The Single Post Meta Manager Admin defines all functionality for the dashboard * of the plugin * * @package SPMM */ /** * The Single Post Meta Manager Admin defines all functionality for the dashboard * of the plugin. * * This class defines the meta box used to display the post meta data and registers * the style sheet responsible for styling the content of the meta box. * * @since 1.0.0 */ class Single_Post_Meta_Manager_Admin { /** * A reference to the version of the plugin that is passed to this class from the caller. * * @access private * @var string $version The current version of the plugin. */ private $version; /** * Initializes this class and stores the current version of this plugin. * * @param string $version The current version of this plugin. */ public function __construct( $version ) { $this->version = $version; } /** * Enqueues the style sheet responsible for styling the contents of this * meta box. */ public function enqueue_styles() { wp_enqueue_style( 'single-post-meta-manager-admin', plugin_dir_url( __FILE__ ) . 'css/single-post-meta-manager-admin.css', array(), $this->version, FALSE ); } /** * Registers the meta box that will be used to display all of the post meta data * associated with the current post. */ public function add_meta_box() { add_meta_box( 'single-post-meta-manager-admin', 'Single Post Meta Manager', array( $this, 'render_meta_box' ), 'post', 'normal', 'core' ); } /** * Requires the file that is used to display the user interface of the post meta box. */ public function render_meta_box() { require_once plugin_dir_path( __FILE__ ) . 'partials/single-post-meta-manager.php'; } }
请注意,上面的类只有很少的功能细节。主要是,该类维护对插件版本的引用、用于设置元框样式的样式表以及实际渲染元框所需的函数。
回想一下,所有这些都是在核心插件文件和加载器中设置的。这有助于解耦插件中存在的逻辑,以便每个类都可以专注于其主要目的。
当然,插件的最后一部分依赖于包含显示元框所需标记的实际部分文件。
<?php /** * Displays the user interface for the Single Post Meta Manager meta box. * * This is a partial template that is included by the Single Post Meta Manager * Admin class that is used to display all of the information that is related * to the post meta data for the given post. * * @package SPMM */ ?> <div id="single-post-meta-manager"> <?php $post_meta = get_post_meta( get_the_ID() ); ?> <table id="single-post-meta-manager-data"> <?php foreach ( $post_meta as $post_meta_key => $post_meta_value ) { ?> <tr> <td class="key"><?php echo $post_meta_key; ?></td> <td class="value"><?php print_r( $post_meta_value[0] ); ?></td> </tr> <?php } ?> </table> </div><!-- #single-post-meta-manager -->
这应该是相对不言自明的;但是,为了完整起见,请注意此文件获取当前帖子 ID(通过使用 get_the_ID()
函数),读取帖子元数据,然后迭代它构建一个表显示键和值。
至此,我们已经完成了插件的实现。从实施面向对象的编程实践,到记录代码。
您可以在 GitHub 上获取该插件的最终版本;但是,我们将在更多帖子中继续进行面向对象的讨论,以便我们可以探索一些更高级的主题,例如继承、抽象和其他主题。
同时,如果您对该插件有疑问或意见,请随时在评论中留下!
以上がWordPress プラグイン ドキュメントの続き: オブジェクト指向プログラミング IIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。