WordPress フロントから投稿する Frontend Publishingプラグインがすごい ITかあさん

ITかあさん

WordPress フロントから投稿する Frontend Publishingプラグインがすごい

WordPressのフロントから投稿する Frontend Publishingが便利すぎて鼻血がでそうになった

WordPressでフロントから投稿したい!会員に、管理画面を触らせずにフロントから記事を投稿させたい!!

人生で誰もが一度はそんな衝動に刈られると思います。

Frontend Publishingプラグイン

管理画面を触らせずに自由に、そして導入も非常に簡単なすばらしいプラグインを公式サイトから見つけました!その名もFrontend Publishing!!
まだ日本語で紹介している記事がないのでぜひ紹介したいと思います。

Frontend Publishingがシンプルかつ、便利ですばらしい!

タイトル・記事部分はもちろんのこと

タグ・カテゴリーも選択可能です。

※Author Bioという項目がデフォルトで存在するのですが、このプラグインを導入した際にカスタムフィールドが自動追加されているようでして、Author Bioって投稿者のプロフィールっていう意味らしいです。

Frontend Publishingプラグインの導入方法

プラグインを追加して有効化したら下記2つのショートコードをそれぞれ違う固定ページに記載するだけです。

[fep_submission_form] ・・投稿用フォーム
[fep_article_list] ・・ 投稿済リスト

投稿リスト


無料版ながら、画像やタグの投稿はもちろん、編集もできるのがありがたいところ。(別のフロント系投稿プラグインでは投稿ができても編集はできないものもあるので。。)

導入も簡単!シンプル!でも最大の問題点が。。。

そのままでは日本語で記事投稿ができない!!


設定画面でここで入力文字数に関して設定するのですが、ここで設定するのは文字数ではなく「単語の数」なんですね。例えばこれで単語は4個です。

I have a apple.

半角で文字を分けることのない日本語ではそもそもこの文字のカウントができないわけですので、ほんの少しプラグインを書き換えてあげる必要があります。
(プラグインを直接書き換える必要があるので、変更は自己責任でお願いします。)

incフォルダのajax.phpを少しだけ書き換えます。

ajax.php

if ( !empty($content['post_title']) && str_word_count( $content['post_title'] ) < $min_words_title )
        $error_string .= 'The title is too short
'; if ( !empty($content['post_title']) && str_word_count( $content['post_title'] ) > $max_words_title ) $error_string .= 'The title is too long
';
str_word_count()が単語の数を数える関数です。これを、mb_strlen()関数などの、2バイト文字にも対応した文字数を数える関数にすべて変更すればよいのです。

この他、投稿時にすべてのフォームの項目を埋めなければ、投稿できないようになっているので、26行目の以下の項目のemptyチェック(フォーム項目の空チェック)を外してあげればよいのです。

if( ($min_words_title && empty($content['post_title']) ) || ($min_words_content && empty($content['post_content'])) || ($min_words_bio && empty($content['about_the_author'])) || ($min_tags && empty($content['post_tags'])) ){
		$error_string .= 'You missed one or more required fields
'; }

かあさんの場合は、タグと、投稿者プロフィール’about_the_author(Author Bio)’の空チェックは不要と判断したので、このようにしました。これでたとえタグと、投稿者情報を入力をしなくてもエラーは発生しません。

if( ($min_words_title && empty($content['post_title']) ) || ($min_words_content && empty($content['post_content'])) ){
		$error_string .= 'You missed one or more required fields
'; }

このほかフォームや、投稿一覧の見た目の変更

submission-form.phpを変更すれば見た目の変更や不要なフォームの削除ができます

少し直せばかなり使い勝手がよく、またソースコードが非常にシンプルなので、少しPHPの知識のある人であればアレンジが大変しやすいところも気に入っています。
有料版もあるプラグインですが、無料でもかなり使えますので、ぜひ使ってみてください!

初夏のJavaScript祭 in サーキュレーションビル ForPro