WordPressで会員制サイト(SNS)をつくるには
新規でSNSサイトを作るには?
新規で会員制サイト(SNS)の開発する案件がありまして、OpenPNEにするかWordPressにするかBuddypressにするかについて調査を行いました。
(機会があれば会員制サイトを作るための勉強会やりたいと思っています。)
結果的には、私自身OpenPNEプロジェクトでOpenPNEの開発にも携わらせていただいたのですが、今回の事案については、WordPress+フロントエンドユーザー管理プラグイン(有償)で行こうと言う結論を下しました。
要件によって使うツール(道具)は変わってくるかとは思います。最終的に開発者の好みや慣れだったりします。他にスクラッチで作りたいと言う人もいるでしょうし、フレークワークという選択肢もあります。
今回の要件、開発工数、開発期間を吟味してWordPressが良いという判断です。
(Xoopsも盛り上がってきているので今後使用するかもしれません。)
WordPressはブログ向けのCMSとして使われたのですが、最近は企業向けのサイト、更新性を伴うサイトでよく使われています。
WordPressは会員機能が揃っています。管理画面もしっかりあります。WordPress for iosなどのようにアプリとの連携についても急速に開発が進んでいます。
業界の巨人、Yahooが「スマホファースト」に全力で舵を切ると言ったようにスマホへの最適なUIと機能を備えたWebサービス、アプリが待ち望まれています。
SNSの機能について考える
SNSとしての機能を最低限成り立たせるために4つの機能が必要かと思われます。
1.ユーザーがログインしているかどうかで出力する情報を分ける
2.ユーザーが管理画面を使わずに投稿させる
3.ユーザー同士でフォロー、フォローワーの関係を持つ
4.フォローしたユーザーの投稿がタイムラインに表示される
会員制サイトを作り場合、ログインしている場合とログインしていない場合とで情報を出し分ける(条件分岐)必要があります。
WordPressで会員制サイトを作る場合に便利な関数として、is_user_logged_in()関数があります。
<?php if( is_user_logged_in() ) : ?> ユーザーがログインしている場合の情報を出力 <?php else : ?> ユーザーがログインしていない場合の情報を出力 <?php endif; ?>
<?php if( is_user_logged_in() ) : ?> ユーザーがログインしている場合の情報を出力 <?php endif; ?>
関数リファレンス/is user logged in – WordPress Codex 日本語版
<?php if( is_user_logged_in() ) : ?> <?php //アバター画像を表示 global $user_ID; echo get_avatar($curauth->ID, 120, $default, $alt ); ?> //ニックネームを表示 <h3><?php echo $curauth->nickname; ?>さん<</h3> <?php endif; ?>
覚えておくと便利な条件分岐タグ
ユーザーがログインしているかどうかで出力を変えるという話でしたが、他にページによって、出力するテキストを変えたりテンプレートを変えたりというのはよくあります。
英文法と同じで関連する条件分岐をまとめて覚えておくとよいかもしません。
トップページの場合の記述
<?php if(is_home()):?> <?php endif;?>
個別記事ページの記述
<?php if(is_single()):?> <?php endif;?>
検索結果ページの記述
<?php if(is_search()):?> <?php endif;?>
カテゴリページの記述
<?php if(is_category()):?> <?php endif;?>
タグページの記述
<?php if(is_tag()):?> <?php endif;?>
個別ページの記述
<?php if(is_page()):?> <?php endif;?>
次回は、wp_insert_postを使った投稿について解説を行いたいと思います。
■参考記事
Your Message