2020-06-15/2023-05-23

【WordPress】プラグインを作成する

【WordPress】プラグインを作成する

今回は旋回作成した文字数をカウントする関数をプラグイン化しようと思います。

投稿管理画面に文字数を表示させるというのは切り分けられる機能ですし、「functions.php」に追加し続けると管理がしにくくなります。

なので、プラグインにしようとした次第です。プラグインとしては少ない機能ですけどね。。。

文字数カウントする関数についてはこちらを参考にしてください。

プラグインの作成

WordPressでのプラグインを作成するというと少し難しそうな気がしますね。

実は簡単なんです。

プラグインにはいろいろな機能を持ったものが多くあるため、難しそうに感じるだけです。

WordPressにプラグインとして認識させるための条件は以下のものです。

  • wp-content/pluginsにphpファイルを配置する。
  • phpファイル内に「Plugin Name」というヘッダー情報を含める。

この二つを満たしていればプラグインとして認識されます

ということは前回の内容のファイルを別のphpファイルに移し、ヘッダー情報を書けば表示されるというわけです。

コードで見ると以下のような形になります。

<?php
/*
Plugin Name: addColumns
Description: 投稿・固定ページ管理画面に文字カウントとアイキャッチを表示する。
Version: 1.0
Author: kumatech
Author URI: https://kumatech-lab.com
License: GPL2
*/
add_filter( 'manage_posts_columns', 'add_manage_posts_columns' ) ;
add_filter( 'manage_pages_columns', 'add_manage_posts_columns' ) ;
//項目追加
if ( !function_exists( 'add_manage_posts_columns' ) ):
function add_manage_posts_columns($columns) {
//文字数項目の追加
$columns['word-count'] = '文字数';
//アイキャッチ項目の追加
$columns['thumbnail'] = 'アイキャッチ';
return $columns;
}
endif;
add_action( 'manage_posts_custom_column', 'add_manage_posts_custom_column', 10, 2 );
add_action( 'manage_pages_custom_column', 'add_manage_posts_custom_column', 10, 2 );
//項目の内容
if ( !function_exists( 'add_manage_posts_custom_column' ) ):
function add_manage_posts_custom_column($column_name, $post_id) {
if ( 'word-count' == $column_name ) {
//投稿の取得
$post = get_post($post_id);
//タイトルの文字数計算
$titileCount = mb_strlen(strip_tags($post->post_title));
//htmlタグ除去
$contentCount = strip_tags( $post->post_content );
//改行コード及びtabの除去
$contentCount = preg_replace( '/\t|\r\n|\r|\n/', '', $contentCount);
//空白の除去
$contentCount = preg_replace( '/( | )/', '', $contentCount);
//htmlエンティティをデコード
$contentCount = htmlspecialchars_decode($contentCount , ENT_QUOTES);
//数を数える
$contentCount= mb_strlen($contentCount);
$res = '<div>'.
'<span>' . 'タイトル : ' . $titileCount . '</span>'.
'</div>'.
'<div>'.
'<span>'. '本文 : ' . $contentCount .'</span>'.
'</div>';
}
if ( 'thumbnail' == $column_name ) {
$res = get_the_post_thumbnail($post_id, 'thumbnail', array( 'style' => 'width:80px;height:auto;') );
}
echo $res;
}
endif;
?>

その他のヘッダー情報についてはwordpressのリファレンスから確認してください。

今回は行いませんが、wordpressの公式にアップロードする方法も記載されています。

pluginsにアップロードすればプラグインとして認識はされますが、そのままだと他のプラグインと名前が競合してしまう可能性が高くなってしまいます。

通常はpluguins下にphpファイルと同名のフォルダを作成します。

今回の例で階層を追ってみると「/wp-content/plugins/addColumns/addColumns.php」というようになります。

WordPress管理画面にプラグインをアップロードして利用できるようにするためにはどのようにしたら良いのでしょうか。

それは上の例だと「addColumns」フォルダをzipで圧縮して管理画面から選択することで利用することができます。

実際に画像で追いながら見てみます。

まずフォルダをzipにします。

zip

プラグインのインストール画面でzipファイルを選択します。

choicezip

通常にインストールが完了します。有効化したら投稿管理画面や固定ページ管理画面を見てください。

ins-zip

文字がカウントされています。

まとめ

難しい機能のついていないものなら簡単にプラグインにすることができるということがわかりましたね。

ある程度まとまっていていたり目的が同じものは自分のプラグインにする方法もいいかもしれません。

2020 KumaTechLab.