ぱくたそのような画像・写真素材サイトを無料でWordPressとUltimate Memberで1日で作る方法 その2

スポンサードサーチ

ぱくたそのような画像・写真素材サイトを無料でWordPressとUltimate Memberで1日で作る方法 その1の続きです。

前回は、無料(フリー)画像・写真素材サイトに必要最低限な機能として、まず以下の3つを想定しました。

  • 画像アップロード・ダウンロード機能
  • 寄稿者に画像アップロード機能を追加
  • ダウンロード数をトラッキング

また、画像アップロード・ダウンロード機能をWordPressの基本機能を使って構築する方法について説明をしましたので、今回は寄稿者に画像アップロード機能を追加する方法について考えていきます。

寄稿者に画像アップロード機能を追加

WordPressのユーザー権限は、以下のように分かれています。

  • 管理者(Administrator):WordPress の全ての操作が可能
  • 編集者(Editor):全てのコンテンツに関して投稿、編集、削除、公開が可能
  • 投稿者(Author):記事の投稿、編集、削除、公開が可能
  • 寄稿者(Contributor):記事の下書きと編集のみ可能で公開は不可
  • 購読者(Subscriber):閲覧のみ可能で記事を投稿や編集は不可

この中の、寄稿者は画像などをアップロードできるメディアの機能も使えません。

そこで、無料(フリー)画像・写真素材サイトを運営をしていく中で、外部のメンバーからに寄稿者として画像素材を投稿してもらうために、画像アップロードを機能を追加する必要があります。

寄稿者に画像アップロード機能を追加

WordPressのユーザー権限の寄稿者に画像アップロード機能を追加するには、 functions.php に以下のコードを追加します。

//寄稿者に画像アップロード機能を追加
function allow_contributor_uploads() {
    $contributor = get_role('contributor');
    $contributor->add_cap('upload_files');
}
if ( current_user_can('contributor') && !current_user_can('upload_files') ){
  add_action('admin_init', 'allow_contributor_uploads');
}

寄稿者が自分で追加した画像だけ管理

寄稿者が複数になってくると、他人が投稿した画像に対して、勝手に削除などを行えてしまうのも望ましくありませんので、アカウントを持っている寄稿者自身がアップロードした画像以外は、表示・編集ができないようにする必要があります。

デフォルトの状態では寄稿者は、自分の投稿した画像しか編集はできませんが、全ての画像の表示はできてしまいます。

全ての画像が表示される
全ての画像が表示される

そこで、自分で追加した画像だけ表示するように functions.php に以下のコードを追加します。

//寄稿者が自分で追加した画像だけ管理
function show_only_authorimage( $where ){
  global $current_user;
  if(is_admin()){
    if(current_user_can('contributor') ){
      if( isset( $_POST['action'] ) && ( $_POST['action'] == 'query-attachments' ) ){
        $where .= ' AND post_author='.$current_user->data->ID;
      }
    }
  }
  return $where;
}
add_filter( 'posts_where', 'show_only_authorimage' );

これで、自分の投稿した画像だけが表示されるようになりました。

自分の投稿した画像だけ表示
自分の投稿した画像だけ表示

こちらのコードでは、寄稿者(contributor)だけに限定していますが、ここに投稿者(author)や編集者(Editor)を追加する事もできます。

寄稿者が自分で追加した投稿だけ管理

画像については、自分で追加した画像だけ管理できるようにしましたが、投稿については制限をしていません。

寄稿者は、WordPressの基本設定のままでは記事の新規投稿、下書き状態の編集、削除、記事のレビュー待ち送信が出来、記事公開後は閲覧のみが出来ます。

ただ、寄稿者に全ての記事タイトルが下書きも含めて見えてしまいます。

全ての投稿が表示
全ての投稿が表示

そこで、寄稿者が自分の投稿だけを閲覧できるように functions.php に以下のコードを追加します。

//寄稿者が自分で投稿した記事だけ管理
function show_only_authorpost($query) {
    global $current_user;
    if(is_admin()){
        if(current_user_can('contributor') ){
            $query->set('author', $current_user->ID);
        }
    }
}
add_action('pre_get_posts', 'show_only_authorpost');

これで、自分の投稿だけが表示されるようになりました。

自分の投稿だけ表示
自分の投稿だけ表示

今回、画像アップロード・ダウンロード機能、寄稿者に画像アップロード機能を追加して、寄稿者の画像と投稿だけが見えるようにしました。

次は、ダウンロード数をトラッキング機能を追加していきます。

AI時代だからこそ、戦略は人と一緒に考えることが、最初の一歩です。

開発やコンテンツ生成はAIが担える時代になりました。しかし、何を作るか・どこを目指すかという問いに答えるのは、依然として人の仕事です。

DX推進や新規事業の立ち上げで壁にぶつかる企業の多くは、ソリューションの導入や社内人材への丸投げに終始し、課題の本質が言語化されないまま進んでしまっています。

経営とITの両方を理解した人間が、経営者と並走しながら要求定義・要件定義の段階から一緒に考える。AIはこのプロセスを補助できますが、主役にはなれません。

まだ課題が言語化できていない段階からでも、遠慮なくご相談ください。一緒に考えます。

AIが生成できないのは「実績と信頼」

ECサイトやマーケットプレイスサイトはCS-Cart国際版(公式)という選択肢

AIはコードを書けます。しかし、長年の実運用で磨かれたロジックや、世界中の事業者が検証したセキュリティを、プロンプト一つで再現することはできません。

CS-Cart国際版(公式)は、自社EC・越境EC・BtoB EC・マーケットプレイスに対応した豊富な実績ある機能をパッケージとして提供しています。

構築コストを抑えながら、堅牢なECサイトを立ち上げることができます。

スポンサードサーチ