会員制写真投稿サイトを作りたい おすすめのWordPressテーマとプラグイン

写真投稿サイトに最適なテーマ

様々なテーマがある中で、写真投稿して簡単にみんなでシェアできるものを探してみました。

テーマ:GritHub

アイキャッチ設定プラグイン:XO Featured Image Tools

強制ログインプラグイン:Force Login

ログインページのカスタマイズ:Custom Login Page Customizer

スマホからの写真投稿はWordPressアプリで

GritHub

GridHubをインストールします。

特徴

  • サムネイル写真が並ぶ
  • タイトル表示
  • 投稿したユーザ名表示
  • カテゴリ表示
  • 投稿文章抜粋表示

などができ、表示したいもの、表示したくないものを容易にカスタマイズできる。

写真を投稿すると自動的にアイキャッチへ

投稿した写真をそのまま並べて表示したいです。そのために、サムネイルが並ぶとありがたい。そこで、投稿記事の一番トップの写真をそのままアイキャッチにできるアプリを利用します。

XO Featured Image Tools

会員専用

強制的にログイン画面を表示します。

とてもシンプルに、単にログイン画面に飛ばします。

Force Login

権限管理は、WordPress標準の権限で設定し、写真投稿する人には投稿者権限を割り振ります。

管理者:WordPress の全ての操作が可能
編集者:コメントやリンク管理などコンテンツに関する全ての操作が可能
投稿者:記事の投稿や編集が可能
寄稿者:記事の下書きと編集のみ可能
購読者:閲覧のみ可能(会員サイトの場合、登録者の権限は主にこちら)

ユーザ登録し、ログインしたユーザのみコメント可

これはしなくてもいいのですが、とりあえず気持ち的にログインしたユーザのみにしておきます。

投稿されたコメントはそのまま承認

「すでに承認されたコメントの投稿者のコメントを許可し、それ以外のコメントを承認待ちにする」のチェックを外します。

ログインページのカスタマイズ

ログインページ標準だと、WordPress使ってるなぁって感じであまり好きになれません。

ログインページをカスタマイズします

Custom Login Page Customizer

ログイン画面は、テーマのカスタマイズ画面から変更可能です。

投稿するのはWordPressアプリから

会員制で、スマホ簡単に写真をアップしようと思うと、WordPressアプリをインストールするのが便利です。

こんな感じで

投稿写真の様子

こんな感じで写真投稿ができます。

投稿写真が劣化する

投稿された写真のサイズは、WordPressの標準機能によって、勝手にサイズ調整されます。意図せず、小さくなりすぎると集めた写真がうまく利用できない事にもつながるので、こちらの思った解像度で保存できるようにしたいです。

ダッシュボード → 設定 → メディア

大サイズの高さ・幅の上限を変更してくと、保存時その上限に合わせて保存してくれます。この機能によって、あまりにもサイズが大きい場合、データ容量が気になりますが、ちょうどいい大きさに縮小してもらえます。

会員のCSV一括登録

CSVで一括登録ができるプラグインはたくさんあるのですが、私の環境ではパスワードがうまく登録できないものが多くて。

表示名などに日本語を使うからいけないのか?だけどちゃんとUTF-8で登録しているんだけどなという事が続き、そんな中でちゃんとパスワードも登録できたプラグインは

Import Users from CSV

だけでした。

余計な機能がない分とても扱いやすいです。

権限一覧

administrator(管理者)、editor(編集者)、author(投稿者)、contributor(寄稿者)

投稿をCSVで一括ダウンロード

投稿ちゃんとできているか確認したいなぁ。と思いまして、一括ダウンロードできるプラグインを探してみました。当初は

Export any WordPress data to XML/CSV

を使おうかとおもったのですが、カスタマイズするとエラーが出て思う通り動かない。

CSVダウンロードの段階になって unknow error なんで?

カスタマイズせず、エクスポートすると、問題なくエクスポート完了

FarstName , LastName などすべての項目がエクスポートできるので、誰が投稿しているのかまで把握したければこちらのプラグインがとても優秀です。

投稿者情報までエクスポート可能

以下の WP CSV Exporterは誰がの部分がエクスポートできないので、ちょっと減点。ただ、投稿者の情報が必要なければ、Shift-JISでそのままダウンロードできるので、ファイルを開くまでの手順を減らせます。

WP CSV Exporter

こちらを利用しました。

日本人が作成していて、Shift-JISに対応しているのでExcelでも文字化けせずにファイルを開く事ができました。

ただ、最近更新されていないようで、もう開発はやめちゃったのかな。最新3階のメジャーリリースに対してテストされていないという表示が出ています。

Shift-JIS形式でエクスポート可能

投稿があったら指定のアドレスへメール

できるだけ早めに投稿に気づきたいので、指定したアドレスにメールを送りたいと思います。

テーマの編集から、function_phpの最下部に以下を加えると、投稿と同時にメール送信可能です。

add_action( 'transition_post_status', function( $new_status, $old_status, $post ) {
  if ( 'publish' == $new_status && 'publish' != $old_status && 'post' == $post->post_type ) {
    $header = array( 'From: from@hoge' );
    wp_mail( 'hanako@hoge.jp', $post->post_title, get_permalink( $post->ID ), $header );
  }
}, 10, 3 );

wp_mail 関数

<?php wp_mail( $to, $subject, $message, $headers, $attachments ); ?>

$to
(文字列 | 配列) (必須) 送りたい宛先。配列またはコンマ区切りの文字列で複数の宛先を指定できます。
初期値: なし
$subject
(文字列) (必須) メッセージの件名。
初期値: なし
$message
(文字列) (必須) メッセージの本文。
初期値: なし
$headers
(文字列 | 配列) (オプション) メッセージに付けて送るメールヘッダー。文字列形式の場合、各ヘッダー行(From: や Cc: 等で始まる)を改行で区切る(”\r\n”)。(上級者用)
初期値: 空文字列
$attachments
(文字列 | 配列) (オプション) 添付するファイル。形式は一つのファイル名、ファイル名の配列、または複数のファイル名を改行で区切った一つの文字列。(上級者用)
初期値: 空文字列

投稿者を本文に指定できるように改造

add_action( 'transition_post_status', function( $new_status, $old_status, $post ) {
  if ( 'publish' == $new_status && 'publish' != $old_status && 'post' == $post->post_type ) {


$author = get_userdata($post->post_author);

$author_id = $author->ID;

$author_name = get_the_author_meta( 'display_name', $author_id );
	  
$header = array( 'From: from@hoge' );

$body = $author_name;


    wp_mail( 'hanako@hoge.jp', $post->post_title, $body, $header );
  }
}, 10, 3 );

投稿管理をPowerAutomateでスプレッドシートへ

投稿があった事をできるだけ早くみんなで共有したいと思います。ホームページはどうしてもリロード作業が必要になるため、Microsoftの無料 RPAで、メールからスプレッドシートへ転記していきたいと思います。

Office365上にあるPowerAutomateには、テンプレートが多数準備されており、このテンプレートを利用すると比較的簡単にGmailの新着をスプレッドシートへ転記する事が可能です。

予め、スプレッドシートを作成しておき、その先頭行に件名、差出人、日付、スニペットという列名を設定しておく必要があります。

先頭行に列を指定しておくと、件名や、受信日時など必要な情報がそのまま指定されます。

うまくいくと、Gmailが届くとスプレッドシートへ転記が進みます