SlideShare a Scribd company logo
1 of 18
WordPressでログイン必須のコンテ
ンツを作ったときの気付いたこと
アイティーエー株式会社 ゆいち
自己紹介
・Contact Form 7 add confirmって言う、Contact Form 7に確認画面を
作るプラグイン公開してます。
・WordPressを使って、顧客管理とか販売管理とか
ポータルシステムとか作ることが多いです。
・その保守のためにちょっと変わったレンタルサーバーしてます。
アイティーエー株式会社
ハンドル名は「ゆいち」で時々活動してます。
WordPressを利用したお仕事でいつもWordPressに
お世話になりまくってます!
他にもプラ
グインちょい
上げてます
良かったら声をかけて下さい。
WordPressにはいくつかのログイン必須の
コンテンツを提供する方法が用意されてい
ますよね
 投稿にパスワード設定
 非公開(ログインしないと見れない)
 後、頑張って自力で実装
とても手軽に使えて便利。
でも
要望によっては対応しきれない、
困ったことがありました。
投稿にパスワード設定の場合
 パスワード保護されるのは、the_content()の部分だけ、
カスタムフィールドなどを駆使してテーマを作っていると、
その部分は見えてしまう。
<div><?php the_content();?></div>
<ul>
<?php $hogehoge = get_post_meta($post_id, ’hogehoge’); ?>
<li>フィールド1:<?php echo $hogehoge;?>
</ul>
ここは隠せるけど
ここは隠せない
→
→ 隠したい場合は「非公開」を使うか、
→ 自力でごりごりしないとだめ
→
非公開(ログインしないと見れない)
add_action( ‘wp’, ‘mysite_wp’ );
function mysite_wp() {
if ( 隠したいページだったら ) {
if ( ! is_user_logged_in() ) {
// ログイン画面へ
wp_safe_redirect( home_url( ‘wp-
login.php?redirect_to=‘ . urlencode(ページURL) ) );
}
}
}
例えばこんな感じ
 ログインせずにアクセスすると404エラーになる(そりゃ
そうだ!)ので、自力でログイン画面へ遷移させたい。
どちらの場合でもメディアは隠れない
 どちらの機能を使っても、ページに添付されたメディア
は直リンクなので隠せない。
→
→ 隠したい場合は
→ 自力でごりごりしないとだめ
→
http://example.com/wp-content/uploads/2017/04/post1.jpg
とか直接アクセスすると見えてしまう。
管理画面を隠す際の注意点
 管理画面を権限によって、隠すのに私はadmin_initフックをよ
く使うのですが、すべてをredirectしてしまうとajaxが動作しな
いプラグインが出てしまうことがあります。
→
→ これだとajaxが動作しないことがるので
→
add_action( 'admin_init', 'mysite_admin_init' );
function mysite_admin_init() {
if ( ! current_user_can( 'administrator' ) ) {
wp_safe_redirect( home_url( '/' ) );
die;
}
}
function mysite_admin_init() {
if ( ! current_user_can( 'administrator' ) ) {
// admin-ajaxは除く
if ( ( defined( 'DOING_AJAX' ) && ( ! DOING_AJAX ) ) || ( ! defined( 'DOING_AJAX' ) ) )
{
wp_safe_redirect( home_url( '/' ) );
die;
}
}
}
ajaxを除外
ざっと整理
 パスワード保護で保護されるのはthe_contentの中身だけ
 非公開の投稿はアクセスするとログインせずにアクセスすると
404エラーになる(当たり前と言えば当たり前
 どちらの方法も、メディアファイルは保護されない。
 管理画面を隠す際はajaxの動作(admin-ajax.php)を考慮す
る必要がある。
時間があれば画像のログイン必須の実現をさらっと
例えば、secureposts投稿タイプの投稿画面からのアップ
ロードの場合、ログイン必須の画像として扱うようにする
例えばこんな感じ
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.php$ - [L]
RewriteRule (.*) /wp-admin/admin-ajax.php?action=mysite_secure&path=$1
</IfModule>
/wp-content/uploads/secureフォルダを作成して、
.htaccessファイルを設置、このフォルダのアクセスをAPIへ
location /wp-content/uploads/secure {
return 301 /wp-admin/admin-ajax.php?action=mysite_secure&path=$uri;
}
nginxなら
本当はREST APIで作り直したいけど、時間が無かったので、とりあえず
admin-ajaxでファイルへのアクセス
/** 制御対象だった場合、アップロード先をsecureフォルダに変更 **/
add_filter( 'upload_dir', 'mysite_upload_dir' );
function mysite_upload_dir( $uploads ) {
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action'] ) {
// ファイルのアップロード
$is_secure = false;
if ( isset( $_REQUEST[‘post_id’] ) && ( ‘’ != $_REQUEST[‘post_id’] ) ) {
$post = get_post( intval( $_REQUEST[‘post_id’] ) );
if ( ‘secureposts’ == $post->post_type ) {
$is_secure = true;
}
} elseif ( isset( $_REQUEST[‘post’] ) && ( ‘’ != $_REQUEST[‘post’] ) ) {
// 投稿編集画面
$post = get_post( intval( $_REQUEST[‘post’] ) );
if ( ‘secureposts’ == $post->post_type ) {
$is_secure = true;
}
} elseif ( isset( $_REQUEST[‘post_type’] ) && ( ‘secureposts’ == $_REQUEST[‘post_type’] ) ) {
// 新規投稿画面
$is_secure = true;
}
// 紐付く投稿あり
if ( $is_secure ) {
$uploads['subdir'] = '/secure' . $uploads['subdir'];
$uploads['path'] = $uploads['basedir'] . $uploads['subdir'];
$uploads['url'] = $uploads['baseurl'] . $uploads['subdir'];
if ( ! file_exists( $uploads['path'] ) ) {
mkdir( $uploads['path'], 0777, true );
}
}
}
return $uploads;
}
対
象
の
投
稿
タ
イ
プ
の
編
集
画
面
か
を
判
別
パ
ス
を
変
更
/** メディア上ではどれがセキュアな画像かわからないのでタイトルに[secure]を自動追加 **/
add_filter( 'mysite_secure_file_prefix', 'mysite_secure_file_prefix', 10 , 1);
function mysite_secure_file_prefix($prefix) {
return '[secure]';
}
add_filter( 'wp_insert_attachment_data', 'mysite_wp_insert_attachment_data', 10, 2 );
function mysite_wp_insert_attachment_data( $data, $postarr ) {
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action'] ) {
$is_secure = false;
if ( isset( $_REQUEST['post_id'] ) && ( '' != $_REQUEST['post_id'] ) ) {
$post = get_post( intval( $_REQUEST['post_id'] ) );
if ( 'secureposts' == $post->post_type ) {
$is_secure = true;
}
} elseif ( isset( $_REQUEST['post'] ) && ( '' != $_REQUEST['post'] ) ) {
$post = get_post( intval( $_REQUEST['post'] ) );
if ( 'secureposts' == $post->post_type ) {
$is_secure = true;
}
} elseif ( isset( $_REQUEST['post_type'] ) && ( 'secureposts' == $_REQUEST['post_type'] ) ) {
$is_secure = true;
}
if ( $is_secure ) {
$data['post_title'] = apply_filters( 'mysite_secure_file_prefix', '' ) . $data['post_title'];
}
}
return $data;
}
対
象
の
投
稿
タ
イ
プ
の
編
集
画
面
か
を
判
別タイトルを変更
/** 本当はREST APIで作り直したいけど、時間が無かったので、とりあえずadmin-ajaxでファイルへのアク
セス **/
add_action( ‘wp_ajax_mysite_secure’, ‘mysite_secure’ );
add_action( ‘wp_ajax_nopriv_mysite_secure’, ‘mysite_secure’ );
function mysite_secure() {
if ( is_user_logged_in() === false ) {
wp_die( ‘アクセス権がありません。' );
}
$path = ABSPATH . $_REQUEST['path'];
$filename = basename( $path );
// ファイル名から投稿を抽出
$file_meta_value = substr( $_REQUEST['path'], strpos( $_REQUEST['path'], '/secure/' ) + 1 );
$att_posts = new WP_Query( array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'meta_query' => array(
array(
'key' => '_wp_attached_file',
'value' => $file_meta_value
)
)
) );
if ( $att_posts->have_posts() ) {
$att_posts->the_post();
$array_meta_data = get_post_meta( get_the_ID(), '_wp_attachment_metadata', true );
$ext = pathinfo( get_attached_file( get_the_ID() ), PATHINFO_EXTENSION );
$filename = substr( get_the_title(), strlen( apply_filters( 'mysite_secure_file_prefix', '' ) ) ) . '.' . $ext;
if ( file_exists( $path ) ) {
$filetype = wp_check_filetype( $filename );
header( "Content-Type: " . $filetype['type'] );
//$d = new DateTime('now', new DateTimeZone("Asia/Tokyo"));
header( 'Content-Disposition: attachment; filename*=UTF-8''' . rawurlencode( $filename ) );
header( "Content-Length: " . filesize( $path ) );
ob_end_clean();
readfile( $path );
}
}
exit;
}
元
の
フ
ァ
イ
ル
名
を
取
得
ダウンロード
ログインチェック
ちなみに文中のネコはうちの子です。
おしまい

More Related Content

What's hot

Esto si es un tatoo
Esto si es un tatooEsto si es un tatoo
Esto si es un tatooJack Eitor
 
La recente evoluzione della regolazione del servizio idrico integrato
La recente evoluzione della regolazione del servizio idrico integratoLa recente evoluzione della regolazione del servizio idrico integrato
La recente evoluzione della regolazione del servizio idrico integratoARERA
 
일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf 일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf Tac Min Oh
 
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdf
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdfValmet Acoustic Pyrometer AP 106 Manual 191022-1.pdf
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdfssuser3d8ccb
 
[창업자&예비창업자] 투자자를 사로잡는 IR
[창업자&예비창업자] 투자자를 사로잡는 IR[창업자&예비창업자] 투자자를 사로잡는 IR
[창업자&예비창업자] 투자자를 사로잡는 IR더게임체인저스
 
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdfArtcoon
 
Non Linear Models Driving The Next Phase Of Growth For The Indian It Industry
Non Linear Models   Driving The Next Phase Of Growth For The Indian It IndustryNon Linear Models   Driving The Next Phase Of Growth For The Indian It Industry
Non Linear Models Driving The Next Phase Of Growth For The Indian It IndustryAljoJohnson
 
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話工数見積りのぶれ幅を理解してチームの見積り精度を上げた話
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話chome maru3
 
Basico bearing Catalogue
Basico bearing CatalogueBasico bearing Catalogue
Basico bearing CatalogueMyra Peng
 
Sec016 詳説 -_rights_management_services__azure_information_protection
Sec016 詳説 -_rights_management_services__azure_information_protectionSec016 詳説 -_rights_management_services__azure_information_protection
Sec016 詳説 -_rights_management_services__azure_information_protectionTech Summit 2016
 
e-mart No Brand
e-mart No Brande-mart No Brand
e-mart No Brand수연 김
 
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...Patrick Pires Alvim
 
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdfArtcoon
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめTomomitsuKusaba
 
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토 CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토 성진 김
 
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북 2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북 EunchaeKim1
 
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdfArtcoon
 
Catalogo acessórios para rolamentos
Catalogo acessórios para rolamentosCatalogo acessórios para rolamentos
Catalogo acessórios para rolamentosAnderson Monari
 
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazdaNaples Mazda
 

What's hot (20)

Esto si es un tatoo
Esto si es un tatooEsto si es un tatoo
Esto si es un tatoo
 
La recente evoluzione della regolazione del servizio idrico integrato
La recente evoluzione della regolazione del servizio idrico integratoLa recente evoluzione della regolazione del servizio idrico integrato
La recente evoluzione della regolazione del servizio idrico integrato
 
일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf 일관된 경험을 주는 브랜드 만들기.pdf
일관된 경험을 주는 브랜드 만들기.pdf
 
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdf
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdfValmet Acoustic Pyrometer AP 106 Manual 191022-1.pdf
Valmet Acoustic Pyrometer AP 106 Manual 191022-1.pdf
 
[창업자&예비창업자] 투자자를 사로잡는 IR
[창업자&예비창업자] 투자자를 사로잡는 IR[창업자&예비창업자] 투자자를 사로잡는 IR
[창업자&예비창업자] 투자자를 사로잡는 IR
 
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf
2022 한양대_내셔널브랜드_MyWave_타이거민즈_최종발표.pdf
 
Non Linear Models Driving The Next Phase Of Growth For The Indian It Industry
Non Linear Models   Driving The Next Phase Of Growth For The Indian It IndustryNon Linear Models   Driving The Next Phase Of Growth For The Indian It Industry
Non Linear Models Driving The Next Phase Of Growth For The Indian It Industry
 
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話工数見積りのぶれ幅を理解してチームの見積り精度を上げた話
工数見積りのぶれ幅を理解してチームの見積り精度を上げた話
 
Basico bearing Catalogue
Basico bearing CatalogueBasico bearing Catalogue
Basico bearing Catalogue
 
Sec016 詳説 -_rights_management_services__azure_information_protection
Sec016 詳説 -_rights_management_services__azure_information_protectionSec016 詳説 -_rights_management_services__azure_information_protection
Sec016 詳説 -_rights_management_services__azure_information_protection
 
e-mart No Brand
e-mart No Brande-mart No Brand
e-mart No Brand
 
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
ESTUDO DE MÉTODOS DE IDENTIFICAÇÃO DE SISTEMAS EM MALHA FECHADA APLICADOS A P...
 
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf
2021 한양대_내셔널브랜드_Vida_C4D_최종제출.pdf
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
 
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토 CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토
CNC T-BAR 형상제어 시스템을 활용한 비정형 건축물의 곡면파사드의 시공사례 검토
 
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북 2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북
2018-2 브랜드커뮤니케이션 전략 29CM 브랜드북
 
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf
2022 한양대_내셔널브랜드_AIRNECT_두잇_최종발표.pdf
 
Catalogo acessórios para rolamentos
Catalogo acessórios para rolamentosCatalogo acessórios para rolamentos
Catalogo acessórios para rolamentos
 
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda
2012 Mazda Mazda2 Hatchback owners manual provided by naples mazda
 
Einleitung - zum Lehrbuch und dem etwas anderen Lehrbuchprojekt
Einleitung - zum Lehrbuch und dem etwas anderen LehrbuchprojektEinleitung - zum Lehrbuch und dem etwas anderen Lehrbuchprojekt
Einleitung - zum Lehrbuch und dem etwas anderen Lehrbuchprojekt
 

Similar to WordPressでログイン必須のコンテンツを作ったときに気付いたこと

Launch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPressLaunch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPressKite Koga
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようHiroshi Tokumaru
 
再構築ハンズオン
再構築ハンズオン再構築ハンズオン
再構築ハンズオンYoshitaka KATO
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28Kite Koga
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-KojiMaruyama5
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php - BREN
 
WordPressとリスク管理 at 第42回 WordBench大阪
WordPressとリスク管理 at 第42回 WordBench大阪WordPressとリスク管理 at 第42回 WordBench大阪
WordPressとリスク管理 at 第42回 WordBench大阪Kitani Kimiya
 
Windows storeアプリ brekky
Windows storeアプリ brekkyWindows storeアプリ brekky
Windows storeアプリ brekkySatoshi Sekine
 
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!p1us2er0
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣Yuji Takayama
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -Yuji Takayama
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Yuji Takayama
 
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget apiTakami Kazuya
 
Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Masahiko Ebisuda
 
ブログメディアにおけるData APIの活用について
ブログメディアにおけるData APIの活用についてブログメディアにおけるData APIの活用について
ブログメディアにおけるData APIの活用についてHatsuhito UENO
 
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発Kazuki Nakajima
 

Similar to WordPressでログイン必須のコンテンツを作ったときに気付いたこと (20)

Launch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPressLaunch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPress
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
 
再構築ハンズオン
再構築ハンズオン再構築ハンズオン
再構築ハンズオン
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
 
WordPressとリスク管理 at 第42回 WordBench大阪
WordPressとリスク管理 at 第42回 WordBench大阪WordPressとリスク管理 at 第42回 WordBench大阪
WordPressとリスク管理 at 第42回 WordBench大阪
 
Windows storeアプリ brekky
Windows storeアプリ brekkyWindows storeアプリ brekky
Windows storeアプリ brekky
 
MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!MailFluteでメール送信を楽しもう!
MailFluteでメール送信を楽しもう!
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
 
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget api
 
Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理Azure Policyでハイブリッドな構成管理
Azure Policyでハイブリッドな構成管理
 
ブログメディアにおけるData APIの活用について
ブログメディアにおけるData APIの活用についてブログメディアにおけるData APIの活用について
ブログメディアにおけるData APIの活用について
 
Ci tutorial
Ci tutorialCi tutorial
Ci tutorial
 
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
 

WordPressでログイン必須のコンテンツを作ったときに気付いたこと