SlideShare a Scribd company logo
Launch a Web Service in 3 Days
Using WordPress	

WordPress を使って3日で作るウェブサービス	

Case : 失恋.jp
“失恋” means heartbreak in English
ABOUT ME	

自己紹介
KITE	

カイト
Web Designer, Programmer,Web Director, Graphic Designer,Art Director, Creative Director…
SNS	

ソーシャルネットワークアカウント
Kaito Koga	

https://www.facebook.com/kaito.koga.9
Facebook Twitter
KITE@ixkaito	

https://twitter.com/ixkaito
http://失恋.jp/ (http://heartbreak.jp/)
TODAY’STHEME	

本日のテーマ
The Impulse	

開発のきっかけ	

Why WordPress?	

WordPress を選んだ理由	

Plugins and Customization	

プラグイン、カスタマイズ
THE IMPULSE	

きっかけ
Access http://heartbreak.jp!	

「失恋.jp」に書いてあります。	

Today, let me talk about more details.	

今日はもう少し詳しくお話しましょう。
http://www.lifehacker.jp/
http://www.roomie.jp/2013/05/77444/
Launch a Web Service in 3 Days Using WordPress
Need a web service for heartbreak!	

失恋を癒やすウェブサービスを作ろう!
Post	

投稿機能	

Comment	

コメント機能
FUNCTIONS	

必要機能
Post	

投稿機能	

Comment	

コメント機能
FUNCTIONS	

必要機能
It’s WordPress!	

WordPress じゃん!
Simple	

シンプル	

Responsive	

レスポンシブ
DESIGN	

デザイン
Simple	

シンプル	

Responsive	

レスポンシブ
DESIGN	

デザイン
It’sTwentyTwelve!	

TwentyTwelve じゃん!
• Membership:

Anyone can register

だれでもユーザー登録できるようにする	

• New User Default Role:

Author

新規ユーザーの権限を「投稿者」にする
SETTINGS	

設定
PLUGINS	

プラグイン
http://wordpress.org/plugins/login-lockdown/
http://wordpress.org/plugins/crazy-bone/
http://wordpress.org/plugins/advanced-custom-fields/
DEFAULT LOGIN PAGE	

デフォルトログイン画面
LOGIN PAGE OF HEARTBREAK.JP	

失恋.jpのログイン画面
DEFAULT EDITOR	

デフォルト投稿画面
EDITOR OF HEARTBREAK.JP	

失恋.jpの投稿画面
DEFAULT PROFILE	

デフォルトプロフィール画面
PROFILE OF HEARTBREAK.JP	

失恋.jpのプロフィール画面
Add Admin Style Sheet	

管理画面用スタイルシートを追加
function kite_admin_style(){
echo '<link rel="stylesheet" type="text/css" href="'.get_template_directory_uri().'/css/
admin.css" />'."n";
}
add_action('login_head', 'kite_admin_style', 99);
add_action('admin_head', 'kite_admin_style', 99);
Change the URL andTitle Attribution of Login Header	

ログイン画面のロゴのリンク先と title 属性を変更
function kite_login_headerurl(){
return get_home_url();
}
add_filter('login_headerurl', 'kite_login_headerurl');
!
function kite_login_headertitle(){
return '失恋.jp';
}
add_filter('login_headertitle', 'kite_login_headertitle');
function shitsuren_admin_color() {
return 'light';
}
add_filter( 'get_user_option_admin_color', 'shitsuren_admin_color' );
remove_filter( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
Disable Admin Color Scheme	

管理画面の配色を固定
Remove Admin Bar Menus	

アドミンバーのメニューを削除
function kite_remove_admin_bar_menus($wp_admin_bar){
if(!current_user_can('level_10')){
$wp_admin_bar->remove_node('wp-logo'); // WordPress ロゴ
$wp_admin_bar->remove_node('comments'); // コメント
// $wp_admin_bar->remove_node('new-content'); // 新規
// $wp_admin_bar->remove_node('new-post'); // 新規 - 投稿
$wp_admin_bar->remove_node('new-media'); // 新規 - メディア
// $wp_admin_bar->remove_node('new-page'); // 新規 - 固定ページ
// $wp_admin_bar->remove_node('new-user'); // 新規 - ユーザー
$wp_admin_bar->remove_node('search'); // 検索
// $wp_admin_bar->remove_node('edit-profile'); // プロフィールを編集
// $wp_admin_bar->remove_node('user-info'); // ユーザー情報
}
}
add_action('admin_bar_menu', 'kite_remove_admin_bar_menus', 99);
Remove Side Menus of Dashboard	

管理画面のサイドメニューを削除
function kite_remove_admin_side_menus(){
if(!current_user_can('level_10')){
remove_menu_page('index.php'); // ダッシュボード
// remove_menu_page('edit.php'); // 投稿
remove_menu_page('upload.php'); // メディア
remove_menu_page('link-manager.php'); // リンク
remove_menu_page('edit.php?post_type=page'); // 固定ページ
remove_menu_page('edit-comments.php'); // コメント
remove_menu_page('themes.php'); // 概観
remove_menu_page('plugins.php'); // プラグイン
remove_menu_page('users.php'); // ユーザー
remove_menu_page('tools.php'); // ツール
remove_menu_page('options-general.php'); // 設定
}
}
add_action('admin_menu', 'kite_remove_admin_side_menus');
Die Admin Menus	

管理ページアクセス禁止
function kite_die_admin_menu(){
if(!current_user_can('level_10')){
wp_die( 'このページにアクセスするための十分なアクセス権がありません。' );
}
}
add_action('admin_head-upload.php', 'kite_die_admin_menu'); // メディア
add_action('admin_head-media-new.php', 'kite_die_admin_menu'); // メディア - 新規追加
add_action('admin_head-edit-comments.php', 'kite_die_admin_menu'); // コメント
add_action('admin_head-tools.php', 'kite_dashboard_redirect'); // ツール
Hide Help Button of Dashboard	

管理画面のヘルプを消す
function kite_hide_help(){
if(!current_user_can('level_10')){
echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>';
}
}
add_action('admin_head', 'kite_hide_help');
add_action('admin_print_styles', 'kite_hide_help', 21);
Dashboard Redirect	

管理画面リダイレクト
function kite_dashboard_redirect(){
if(!current_user_can('level_10')){
$admin_urls = array('index', 'upload', 'media-new', 'edit-comments', 'tools', 'admin');
foreach ($admin_urls as $url){
if(get_home_url().$_SERVER['SCRIPT_NAME'] === admin_url($url.'.php')){
wp_redirect(admin_url( 'edit.php' ));
exit();
}
}
}
}
add_action('init', 'kite_dashboard_redirect');
Exclude Others’ Posts in Dashboard	

管理画面投稿一覧で他人の投稿を表示しない
function kite_exclude_other_posts($wp_query){
if (isset($_REQUEST['post_type']) && post_type_exists($_REQUEST['post_type'])){
$post_type = get_post_type_object($_REQUEST['post_type']);
$cap_type = $post_type->cap->edit_other_posts;
} else {
$cap_type = 'edit_others_posts';
}
!
if ( is_admin() && $wp_query->is_main_query() && !$wp_query->get('author') && !
current_user_can($cap_typ)){
$user = wp_get_current_user();
$wp_query->set('author', $user->ID);
}
}
add_action('pre_get_posts', 'kite_exclude_other_posts');
Remove Post Columns in Dashboard	

管理画面投稿一覧の項目を削除
function kite_custom_posts_columns ($columns) {
// unset($columns['cb']); // チェックボックス
// unset($columns['title']); // タイトル
// unset($columns['author']); // 作成者
unset($columns['categories']); // カテゴリー
unset($columns['tags']); // タグ、カスタムフィールド
// unset($columns['comments']); // コメント
// unset($columns['date']); // 日付
return $columns;
}
add_filter('manage_posts_columns', 'kite_custom_posts_columns');
RequireTitle	

投稿タイトルを必須にする
function kite_require_title() {
?>
<script type="text/javascript">
jQuery(document).ready(function($){
if('post' == $('#post_type').val()){
$("#post").submit(function(e){
if('' == $('#title').val()) {
alert('タイトルを入力してください!');
$('#ajax-loading').css('visibility', 'hidden');
$('#publish').removeClass('button-primary-disabled');
$('#title').focus();
return false;
}
});
}
});
</script>
<?php
}
add_action('admin_head-post-new.php', 'kite_require_title');
Remove Items of Profile	

プロフィール画面の項目を削除
function kite_hide_richeditor_checkbox() {
global $wp_rich_edit_exists;
if(!current_user_can('level_10') && defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE){
$wp_rich_edit_exists = false;
}
}
add_action('admin_head', 'kite_hide_richeditor_checkbox');
Remove Items of Profile (continued)	

プロフィール画面の項目を削除(つづき)
function kite_hide_profile_item() {
if(!current_user_can('level_10')){
?>
<script type="text/javascript">
tftn = "table.form-table:nth-of-type";
jQuery(document).ready(function($) {
$("div#profile-page h3").css("display", "none"); // h3 タイトル
$(tftn + "(1)").css("display", "none"); // 個人設定ブロック
$(tftn + "(2) tr:nth-child(2)").css("display", "none"); // 姓
$(tftn + "(2) tr:nth-child(3)").css("display", "none"); // 名
// $(tftn + "(2) tr:nth-child(4)").css("display", "none"); // ニックネーム
// $(tftn + "(2) tr:nth-child(5)").css("display", "none"); // ブログ上の表示名
$(tftn + "(3) tr:nth-child(2)").css("display", "none"); // ウェブサイト
$(tftn + "(4) tr:nth-child(1)").css("display", "none"); // プロフィール情報
!
var label = $(tftn + "(2) tr:nth-child(5) > th > label").text(); // ブログ上の表示名
label = label.replace('ブログ上の', '');
$(tftn + "(2) tr:nth-child(5) > th > label").text(label);
});
</script>
<?php
}
}
add_action('show_user_profile', 'kite_hide_profile_item');
Only Search Posts	

検索を投稿のみに限定する
function kite_search($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','kite_search');
Require Comment Author	

コメントの名前を必須にする
function kite_require_comment_author($commentdata){
if ('' === trim($commentdata['comment_author']))
wp_die('名前を入力して下さい。');
return $commentdata;
}
add_filter('preprocess_comment', 'kite_require_comment_author', 1);
Remove Email and Website of Comment Form	

コメントのメールアドレス、ウェブサイト項目を削除
function kite_remove_comment_form_fields($args){
$args['email'] = '';
$args['url'] = '';
return $args;
}
add_filter('comment_form_default_fields', 'kite_remove_comment_form_fields');
Add Comment Notes	

コメントの注意書き
function kite_comment_form($args){
$args['comment_field'] = '<p class="comment-form-comment"><label for="comment">メ
ッセージ</label><textarea id="comment" name="comment" cols="45" rows="8" aria-
required="true"></textarea></p>';
$args['title_reply'] = 'メッセージを残す';
$args['cancel_reply_link'] = 'メッセージをキャンセル';
$args['comment_notes_before'] = '<span class="comment-note">失恋した本人やその相手を
否定する内容、<br />他の方が不快に思うような内容は絶対に投稿しないようお願いします。<br />必ず事前
に<a href="'.get_home_url('', 'about').'">「失恋.jp について」</a>をお読みください。</span>';
$args['comment_notes_after'] = '';
$args['label_submit'] = 'メッセージを送信';
return $args;
}
add_filter('comment_form_defaults', 'kite_comment_form');
Thank you for your attention.	

ご清聴ありがとうございました。

More Related Content

PDF
WordPressでウェブサービスを作ろう! #wbNagoya
PDF
「やりたい!」が「できた!」に変わる。チームで作るWebサービス〜Scoobの場合〜
PDF
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
PDF
4時間まったりWordPressテーマ作成講座
PDF
WordPressで作るポートフォリオサイト
KEY
WordPress中級者への道!テンプレートタグはどう動くのか!?
PDF
Wp html5
PDF
WordPress初心者テーマ作成勉強会
WordPressでウェブサービスを作ろう! #wbNagoya
「やりたい!」が「できた!」に変わる。チームで作るWebサービス〜Scoobの場合〜
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
4時間まったりWordPressテーマ作成講座
WordPressで作るポートフォリオサイト
WordPress中級者への道!テンプレートタグはどう動くのか!?
Wp html5
WordPress初心者テーマ作成勉強会

What's hot (20)

PDF
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
PDF
Webteko 20090925
PDF
第3回WordPress Cafe プラグイン紹介
PDF
今から始めよう!WordPressで作る女子ウケ★スマホサイト
PDF
WordPressテーマ Foundation for WordPress の紹介
PDF
Word camposaka imaigo_slideshare
PDF
ユーザーにやさしい管理画面をつくるために。テーマ制作者ができること 初級編【WordCamp Kansai 2014】
PPTX
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
KEY
WordPressプラグイン作成入門
PDF
ゼロからつくるWord pressテーマ第7回
PDF
⑯jQueryをおぼえよう!その2
PDF
Wordpressスマートフォンテーマ作成
PDF
ゼロからつくるWord pressテーマ第9回
PDF
WP REST API の活用事例と今後
KEY
WordPressってブログじゃないの?
KEY
ブログの枠を超える?ためのWordPressカスタマイズ入門
PPTX
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
PDF
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
PDF
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
Webteko 20090925
第3回WordPress Cafe プラグイン紹介
今から始めよう!WordPressで作る女子ウケ★スマホサイト
WordPressテーマ Foundation for WordPress の紹介
Word camposaka imaigo_slideshare
ユーザーにやさしい管理画面をつくるために。テーマ制作者ができること 初級編【WordCamp Kansai 2014】
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
WordPressプラグイン作成入門
ゼロからつくるWord pressテーマ第7回
⑯jQueryをおぼえよう!その2
Wordpressスマートフォンテーマ作成
ゼロからつくるWord pressテーマ第9回
WP REST API の活用事例と今後
WordPressってブログじゃないの?
ブログの枠を超える?ためのWordPressカスタマイズ入門
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
Ad

Similar to Launch a Web Service in 3 Days Using WordPress (20)

PDF
カスタム投稿タイプ
PDF
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
PDF
Cms festa-0216
PDF
SaCSS vol.24
PDF
SaCSS vol. 24
PPT
WordCamp YOKOHAMA kai4den
PDF
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
PDF
introduction
PDF
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
PDF
カスタムフィールドでクライアントさんの モチベーションをアップ!!
PDF
WordBech Osaka No.28
PDF
WordPressをこれから始める人のためのテーマ講座
PDF
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
PPTX
WordBench熊本第3回勉強会
PDF
Wordpress カスタム投稿
PDF
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
KEY
PHPがわからないデザイナーでもできる、簡単カスタマイズ術
PDF
コードをさわらずにビジネスサイトを作ろう!
PDF
【Wordpress】LightBox風jQueryを使ってポップアップ上でカスタムフィールドを出力。
KEY
Wb osaka 20120623
カスタム投稿タイプ
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
Cms festa-0216
SaCSS vol.24
SaCSS vol. 24
WordCamp YOKOHAMA kai4den
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
introduction
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
カスタムフィールドでクライアントさんの モチベーションをアップ!!
WordBech Osaka No.28
WordPressをこれから始める人のためのテーマ講座
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordBench熊本第3回勉強会
Wordpress カスタム投稿
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
PHPがわからないデザイナーでもできる、簡単カスタマイズ術
コードをさわらずにビジネスサイトを作ろう!
【Wordpress】LightBox風jQueryを使ってポップアップ上でカスタムフィールドを出力。
Wb osaka 20120623
Ad

More from Kite Koga (16)

PDF
Frasco: Jekyll Starter Project
PDF
Dockerize WordPress on Mac/Windows
PDF
正解のないデザインについて、それでも正解について考えてみる - Think of the answer of Design -
PDF
海外の WordCamp に登壇してきました
PDF
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
PDF
Wocker: Create a WordPress Development Environment in Seconds
PDF
WordPress の今とこれから ー CMS大阪夏祭り2015 ー
PDF
Gulp WordPress @Grand-Frontend-Osaka 2015 Summer
PDF
WordCamp Kansai 2015
PDF
Wocker & WordCamp Kansai 2015
PDF
Wocker 秒速で WordPress 開発環境を構築する
PDF
Wocker @WordBench Osaka No.41
PDF
Introduction of Umania
PDF
Vagrant-concrete5
PDF
Webデザイナーが身に付けておきたい定番スキル ー WordPress 初級・導入編 ー
PDF
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Frasco: Jekyll Starter Project
Dockerize WordPress on Mac/Windows
正解のないデザインについて、それでも正解について考えてみる - Think of the answer of Design -
海外の WordCamp に登壇してきました
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
Wocker: Create a WordPress Development Environment in Seconds
WordPress の今とこれから ー CMS大阪夏祭り2015 ー
Gulp WordPress @Grand-Frontend-Osaka 2015 Summer
WordCamp Kansai 2015
Wocker & WordCamp Kansai 2015
Wocker 秒速で WordPress 開発環境を構築する
Wocker @WordBench Osaka No.41
Introduction of Umania
Vagrant-concrete5
Webデザイナーが身に付けておきたい定番スキル ー WordPress 初級・導入編 ー
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー

Launch a Web Service in 3 Days Using WordPress

  • 1. Launch a Web Service in 3 Days Using WordPress WordPress を使って3日で作るウェブサービス Case : 失恋.jp “失恋” means heartbreak in English
  • 2. ABOUT ME 自己紹介 KITE カイト Web Designer, Programmer,Web Director, Graphic Designer,Art Director, Creative Director…
  • 5. TODAY’STHEME 本日のテーマ The Impulse 開発のきっかけ Why WordPress? WordPress を選んだ理由 Plugins and Customization プラグイン、カスタマイズ
  • 6. THE IMPULSE きっかけ Access http://heartbreak.jp! 「失恋.jp」に書いてあります。 Today, let me talk about more details. 今日はもう少し詳しくお話しましょう。
  • 10. Need a web service for heartbreak! 失恋を癒やすウェブサービスを作ろう!
  • 15. • Membership:
 Anyone can register
 だれでもユーザー登録できるようにする • New User Default Role:
 Author
 新規ユーザーの権限を「投稿者」にする SETTINGS 設定
  • 21. LOGIN PAGE OF HEARTBREAK.JP 失恋.jpのログイン画面
  • 26. Add Admin Style Sheet 管理画面用スタイルシートを追加 function kite_admin_style(){ echo '<link rel="stylesheet" type="text/css" href="'.get_template_directory_uri().'/css/ admin.css" />'."n"; } add_action('login_head', 'kite_admin_style', 99); add_action('admin_head', 'kite_admin_style', 99);
  • 27. Change the URL andTitle Attribution of Login Header ログイン画面のロゴのリンク先と title 属性を変更 function kite_login_headerurl(){ return get_home_url(); } add_filter('login_headerurl', 'kite_login_headerurl'); ! function kite_login_headertitle(){ return '失恋.jp'; } add_filter('login_headertitle', 'kite_login_headertitle');
  • 28. function shitsuren_admin_color() { return 'light'; } add_filter( 'get_user_option_admin_color', 'shitsuren_admin_color' ); remove_filter( 'admin_color_scheme_picker', 'admin_color_scheme_picker' ); Disable Admin Color Scheme 管理画面の配色を固定
  • 29. Remove Admin Bar Menus アドミンバーのメニューを削除 function kite_remove_admin_bar_menus($wp_admin_bar){ if(!current_user_can('level_10')){ $wp_admin_bar->remove_node('wp-logo'); // WordPress ロゴ $wp_admin_bar->remove_node('comments'); // コメント // $wp_admin_bar->remove_node('new-content'); // 新規 // $wp_admin_bar->remove_node('new-post'); // 新規 - 投稿 $wp_admin_bar->remove_node('new-media'); // 新規 - メディア // $wp_admin_bar->remove_node('new-page'); // 新規 - 固定ページ // $wp_admin_bar->remove_node('new-user'); // 新規 - ユーザー $wp_admin_bar->remove_node('search'); // 検索 // $wp_admin_bar->remove_node('edit-profile'); // プロフィールを編集 // $wp_admin_bar->remove_node('user-info'); // ユーザー情報 } } add_action('admin_bar_menu', 'kite_remove_admin_bar_menus', 99);
  • 30. Remove Side Menus of Dashboard 管理画面のサイドメニューを削除 function kite_remove_admin_side_menus(){ if(!current_user_can('level_10')){ remove_menu_page('index.php'); // ダッシュボード // remove_menu_page('edit.php'); // 投稿 remove_menu_page('upload.php'); // メディア remove_menu_page('link-manager.php'); // リンク remove_menu_page('edit.php?post_type=page'); // 固定ページ remove_menu_page('edit-comments.php'); // コメント remove_menu_page('themes.php'); // 概観 remove_menu_page('plugins.php'); // プラグイン remove_menu_page('users.php'); // ユーザー remove_menu_page('tools.php'); // ツール remove_menu_page('options-general.php'); // 設定 } } add_action('admin_menu', 'kite_remove_admin_side_menus');
  • 31. Die Admin Menus 管理ページアクセス禁止 function kite_die_admin_menu(){ if(!current_user_can('level_10')){ wp_die( 'このページにアクセスするための十分なアクセス権がありません。' ); } } add_action('admin_head-upload.php', 'kite_die_admin_menu'); // メディア add_action('admin_head-media-new.php', 'kite_die_admin_menu'); // メディア - 新規追加 add_action('admin_head-edit-comments.php', 'kite_die_admin_menu'); // コメント add_action('admin_head-tools.php', 'kite_dashboard_redirect'); // ツール
  • 32. Hide Help Button of Dashboard 管理画面のヘルプを消す function kite_hide_help(){ if(!current_user_can('level_10')){ echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>'; } } add_action('admin_head', 'kite_hide_help'); add_action('admin_print_styles', 'kite_hide_help', 21);
  • 33. Dashboard Redirect 管理画面リダイレクト function kite_dashboard_redirect(){ if(!current_user_can('level_10')){ $admin_urls = array('index', 'upload', 'media-new', 'edit-comments', 'tools', 'admin'); foreach ($admin_urls as $url){ if(get_home_url().$_SERVER['SCRIPT_NAME'] === admin_url($url.'.php')){ wp_redirect(admin_url( 'edit.php' )); exit(); } } } } add_action('init', 'kite_dashboard_redirect');
  • 34. Exclude Others’ Posts in Dashboard 管理画面投稿一覧で他人の投稿を表示しない function kite_exclude_other_posts($wp_query){ if (isset($_REQUEST['post_type']) && post_type_exists($_REQUEST['post_type'])){ $post_type = get_post_type_object($_REQUEST['post_type']); $cap_type = $post_type->cap->edit_other_posts; } else { $cap_type = 'edit_others_posts'; } ! if ( is_admin() && $wp_query->is_main_query() && !$wp_query->get('author') && ! current_user_can($cap_typ)){ $user = wp_get_current_user(); $wp_query->set('author', $user->ID); } } add_action('pre_get_posts', 'kite_exclude_other_posts');
  • 35. Remove Post Columns in Dashboard 管理画面投稿一覧の項目を削除 function kite_custom_posts_columns ($columns) { // unset($columns['cb']); // チェックボックス // unset($columns['title']); // タイトル // unset($columns['author']); // 作成者 unset($columns['categories']); // カテゴリー unset($columns['tags']); // タグ、カスタムフィールド // unset($columns['comments']); // コメント // unset($columns['date']); // 日付 return $columns; } add_filter('manage_posts_columns', 'kite_custom_posts_columns');
  • 36. RequireTitle 投稿タイトルを必須にする function kite_require_title() { ?> <script type="text/javascript"> jQuery(document).ready(function($){ if('post' == $('#post_type').val()){ $("#post").submit(function(e){ if('' == $('#title').val()) { alert('タイトルを入力してください!'); $('#ajax-loading').css('visibility', 'hidden'); $('#publish').removeClass('button-primary-disabled'); $('#title').focus(); return false; } }); } }); </script> <?php } add_action('admin_head-post-new.php', 'kite_require_title');
  • 37. Remove Items of Profile プロフィール画面の項目を削除 function kite_hide_richeditor_checkbox() { global $wp_rich_edit_exists; if(!current_user_can('level_10') && defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE){ $wp_rich_edit_exists = false; } } add_action('admin_head', 'kite_hide_richeditor_checkbox');
  • 38. Remove Items of Profile (continued) プロフィール画面の項目を削除(つづき) function kite_hide_profile_item() { if(!current_user_can('level_10')){ ?> <script type="text/javascript"> tftn = "table.form-table:nth-of-type"; jQuery(document).ready(function($) { $("div#profile-page h3").css("display", "none"); // h3 タイトル $(tftn + "(1)").css("display", "none"); // 個人設定ブロック $(tftn + "(2) tr:nth-child(2)").css("display", "none"); // 姓 $(tftn + "(2) tr:nth-child(3)").css("display", "none"); // 名 // $(tftn + "(2) tr:nth-child(4)").css("display", "none"); // ニックネーム // $(tftn + "(2) tr:nth-child(5)").css("display", "none"); // ブログ上の表示名 $(tftn + "(3) tr:nth-child(2)").css("display", "none"); // ウェブサイト $(tftn + "(4) tr:nth-child(1)").css("display", "none"); // プロフィール情報 ! var label = $(tftn + "(2) tr:nth-child(5) > th > label").text(); // ブログ上の表示名 label = label.replace('ブログ上の', ''); $(tftn + "(2) tr:nth-child(5) > th > label").text(label); }); </script> <?php } } add_action('show_user_profile', 'kite_hide_profile_item');
  • 39. Only Search Posts 検索を投稿のみに限定する function kite_search($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','kite_search');
  • 40. Require Comment Author コメントの名前を必須にする function kite_require_comment_author($commentdata){ if ('' === trim($commentdata['comment_author'])) wp_die('名前を入力して下さい。'); return $commentdata; } add_filter('preprocess_comment', 'kite_require_comment_author', 1);
  • 41. Remove Email and Website of Comment Form コメントのメールアドレス、ウェブサイト項目を削除 function kite_remove_comment_form_fields($args){ $args['email'] = ''; $args['url'] = ''; return $args; } add_filter('comment_form_default_fields', 'kite_remove_comment_form_fields');
  • 42. Add Comment Notes コメントの注意書き function kite_comment_form($args){ $args['comment_field'] = '<p class="comment-form-comment"><label for="comment">メ ッセージ</label><textarea id="comment" name="comment" cols="45" rows="8" aria- required="true"></textarea></p>'; $args['title_reply'] = 'メッセージを残す'; $args['cancel_reply_link'] = 'メッセージをキャンセル'; $args['comment_notes_before'] = '<span class="comment-note">失恋した本人やその相手を 否定する内容、<br />他の方が不快に思うような内容は絶対に投稿しないようお願いします。<br />必ず事前 に<a href="'.get_home_url('', 'about').'">「失恋.jp について」</a>をお読みください。</span>'; $args['comment_notes_after'] = ''; $args['label_submit'] = 'メッセージを送信'; return $args; } add_filter('comment_form_defaults', 'kite_comment_form');
  • 43. Thank you for your attention. ご清聴ありがとうございました。