はじめに
とあるSNSサイトを作ることになり、いろいろなPHP系のCMS/SNSを試したところ、WordPress + BuddyPressが要件にマッチしていたので調査がてら、ちょっと足りないところがあったのでテーマとプラグインで対応してみた。
追加したコード
サイト名をクリックしたら、個人ページへ飛ぶ
子テーマで対応。親テーマはtwentysixteen
を使用。
child/header.php
<?php if ( is_user_logged_in() ) : ?>
<?php $login_user = wp_get_current_user(); ?>
<?php if ( is_front_page() && is_home() ) : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/member/' . $login_user->user_login ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<?php else : ?>
<p class="site-title"><a href="<?php echo esc_url( home_url( '/member/' . $login_user->user_login ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
<?php endif; ?>
<?php else : ?>
<?php if ( is_front_page() && is_home() ) : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<?php else : ?>
<p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
<?php endif; ?>
<?php endif; ?>
ログインした後に、個人ページに飛ぶ
プラグイン開発(?)で対応。
plugin.php
public function redirect_member_mypage($login_user) {
wp_safe_redirect('/member/' . $login_user);
exit();
}
add_action( 'wp_login', 'redirect_member_mypage', 10, 1 );
使用プラグイン
BuddyPress系
-
BuddyPress
WordPress用SNSプラグイン -
BuddyPress Activity Plus
BuddyPressのアクティビティにメディアを追加可能にする -
BuddyPress Activity Privacy
BuddyPressのアクティビティの公開範囲を設定可能にする -
BuddyPress Members only
会員制のクローズドSNSを作るために使用。ログインをしないとSNSページが表示されなくなる