SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
俺 の フック が こ んなに
     ore no hook ga konna ni kantan na wakega nai.




 簡単 な わけ がない。
    WordBench KOBE #21
こんな説明みたことありませんか?

抜粋の [...] を消すには、functions.phpに以下のコードを
コピー&ペーストしましょう。

 function new_excerpt_more($more) {
       return '';
 }
 add_filter('excerpt_more',
 'new_excerpt_more');
これ、実は「フック」といいます。

抜粋の [...] を消すには、functions.phpに以下のコードを
コピー&ペーストしましょう。

 function new_excerpt_more($more) {
       return '';
 }
 add_filter('excerpt_more',
 'new_excerpt_more');
フックの中でもこれは「フィルターフック」

抜粋の [...] を消すには、functions.phpに以下のコードを
コピー&ペーストしましょう。

 function new_excerpt_more($more) {
       return '';
 }
 add_filter('excerpt_more',
 'new_excerpt_more');
今日は「フック」のしくみについてのお話。
フックには2つある。



アクションフック

フィルターフック
WordPressを料理だと
考えてみましょう
WordPressの処理は
レシピ通り作られる
料理のようなもの
バター60gを混ぜる。

砂糖60gを加える。

ふんわりするまで混ぜる。

バニラエッセンスを加える。

...
バター60gを混ぜる。
     全ての処理には順番がありますが、
         それぞれは独立しています。
砂糖60gを加える。

ふんわりするまで混ぜる。

バニラエッセンスを加える。

...
バター60gを混ぜる。

砂糖60gを加える。

ふんわりするまで混ぜる。

 溶き卵を加える。     処理を追加

バニラエッセンスを加える。

...
バター60gを混ぜる。

砂糖60gを加える。
           アクションフック
ふんわりするまで混ぜる。




                =
 溶き卵を加える。     処理を追加

バニラエッセンスを加える。

...
バター60gを混ぜる。

砂糖60gを加える。

ふんわりするまで混ぜる。

 溶き卵を加える。     どこに追加したか?

バニラエッセンスを加える。

...
バター60gを混ぜる。

砂糖60gを加える。

ふんわりするまで混ぜる。
          「ふんわりするまで
 溶き卵を加える。   混ぜた後」

バニラエッセンスを加える。

...
アクションフックを書いてみた


function 溶き卵を加える() {
}
add_action('ふんわりするまで混ぜ
た後', '溶き卵を加える');
なぜこんなめんどくさい
ことをするのか?
レシピ=ソースコードは
アップデートされる。

書き換えてしまうとあと
でどこを編集したかわから
なくなる。
カスタマイズはフックで行うのが原則。

テンプレートに書いてしまうと、テーマ
を変えた時に処理が消えてしまう。


         Web制作者はしばしばサイトのテーマは変わ
         らないものだと思うが、一応特殊な例で本来
         はユーザーが変えるもの
バター60gを混ぜる。

砂糖60gを加える。

ふんわりするまで混ぜる。

バニラエッセンスを加える。

...
バター60gを混ぜる。
        レシピの中には複数の処理に
砂糖60gを加える。共通した動作があります。


ふんわりするまで混ぜる。

バニラエッセンスを加える。

...
バター60gをよく混ぜる。
               「混ぜる」を
砂糖60gを加える。   「よく混ぜる」に
             フィルターをかけた
ふんわりするまでよく混ぜる。

バニラエッセンスを加える。

...
バター60gをよく混ぜる。
               「混ぜる」を
砂糖60gを加える。   「よく混ぜる」に
             フィルターをかけた
ふんわりするまでよく混ぜる。




                =
           フィルターフック
バニラエッセンスを加える。

...
フィルターフックを書いてみた

function 混ぜるによくを足す
($text) {
  return ‘よく’ . $text;
}
add_filter('混ぜる', '混ぜるに
よくを足す');
バター60gをよく混ぜる。
          「砂糖60gを加える」
            を処理しない

ふんわりするまでよく混ぜる。

バニラエッセンスを加える。

...
バター60gをよく混ぜる。
          「砂糖60gを加える」
            を処理しない

ふんわりするまでよく混ぜる。




                =
         これもフィルターフック
バニラエッセンスを加える。

...
フィルターフックを書いてみた


function やめておく() {
  return false;
}
add_filter('砂糖を加えるかどう
か', 'やめておく');
アクションフックのおさらい

function 溶き卵を加える() {
}
add_action('ふんわりするまで混ぜ
た後', '溶き卵を加える');

あくまで処理の追加。
フィルターフックのおさらい

function 混ぜるによくを足す
($text) {
  return ‘よく’ . $text;
}
add_filter('混ぜる', '混ぜるに
よくを足す');

あくまで既存の処理の変更。
アクションフックは基本的に
既存の処理の変更はできない。
フィルターフックは基本的に処理自体を
追加することはできない。
ただし、例外…


グローバル変数を使えばアクションフィ
ルターでも既存の処理の結果を変更した
りフィルターすることができる。

 グローバル変数 = テーマやプラグインをまたいで
 WordPressの処理中で共通で使用できる変数
 $post, $wp_query, $wp_rewrite など

 一応、変数を渡してフィルターのようにも使えてしまう…(ややこしい)
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');


         フィルターフックの登録
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');

          フィルターを実行する
              関数名
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');

          フィルターを実行する
              関数
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');


         何らかの値を受け取って…
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');


          空の文字列を返している
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');

                 この $more は
                何に使われてるの…
ソースを読むしかない!
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');


         フックを登録する処理名
冒頭のコードをもういちど見てみましょう

function new_excerpt_more($more) {
      return '';
}
add_filter('excerpt_more',
'new_excerpt_more');

     apply_filters('excerpt_more'
      でソースコードを検索!
該当部分のコード
function wp_trim_excerpt($text = '') {
 $raw_excerpt = $text;
 if ( '' == $text ) {
  $text = get_the_content('');
  $text = strip_shortcodes( $text );
  $text = apply_filters('the_content', $text);
  $text = str_replace(']]>', ']]>', $text);
  $excerpt_length = apply_filters('excerpt_length', 55);
  $excerpt_more = apply_filters('excerpt_more', ' ' .
'[...]');
  $text = wp_trim_words( $text, $excerpt_length,
$excerpt_more );
 }
 return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
                               wp-includes/formatting.php
該当部分のコード
function wp_trim_excerpt($text = '') {
 $raw_excerpt = $text;
     apply_filters() フィルターをかける
 if ( '' == $text ) {
  $text = get_the_content('');
  $text = strip_shortcodes( $text );
  $text = apply_filters('the_content', $text);
  $text = str_replace(']]>', ']]>', $text);
  $excerpt_length = apply_filters('excerpt_length', 55);
  $excerpt_more = apply_filters('excerpt_more', ' ' .
'[...]');
  $text = wp_trim_words( $text, $excerpt_length,
$excerpt_more );
 }
 return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
該当部分のコード
function wp_trim_excerpt($text = '') {
 $raw_excerpt = $text;
      先ほどの $more の中身が判明。
 if ( '' == $text ) {
       半角スペース + [...] だった。
  $text = get_the_content('');
  $text = strip_shortcodes( $text );
  $text = apply_filters('the_content', $text);
  $text = str_replace(']]>', ']]>', $text);
  $excerpt_length = apply_filters('excerpt_length', 55);
  $excerpt_more = apply_filters('excerpt_more', ' ' .
'[...]');
  $text = wp_trim_words( $text, $excerpt_length,
$excerpt_more );
 }
 return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
さらに実践編。
WordPressのカテゴリーウィジェット
並び順を変えたいなぁ…
ウィジェットのUIには並び順がない…
さてここで質問。
カテゴリーウィジェットが表示する
カテゴリーの並び順を変えたい。
これはアクションフック?
フィルターフック?
/**
 * Categories widget class
 *                                    該当部分のコード
 * @since 2.8.0
 */
class WP_Widget_Categories extends WP_Widget {
...
! ! $cat_args = array('orderby' => 'name', 'show_count' => $c,
'hierarchical' => $h);
...
! ! <ul>
<?php
! ! $cat_args['title_li'] = '';
! ! wp_list_categories(apply_filters('widget_categories_args',
$cat_args));
?>
! ! </ul>
...
                           wp-includes/default-widget.php
/**
 * Categories widget class
 *                                    該当部分のコード
 * @since 2.8.0
 */
class WP_Widget_Categories extends WP_Widget {
...
         wp_list_categories() 関数で
! ! $cat_args = array('orderby' => 'name', 'show_count' => $c,
'hierarchical' => $h);
...   カテゴリーの一覧を出力してるようだ。
! ! <ul>
<?php
! ! $cat_args['title_li'] = '';
! ! wp_list_categories(apply_filters('widget_categories_args',
$cat_args));
?>
! ! </ul>
...
/**
 * Categories widget class
 *                                    該当部分のコード
 * @since 2.8.0
 */
class WP_Widget_Categories extends WP_Widget {
...               オプション値 $cat_args に
                  フィルターを通してある!
! ! $cat_args = array('orderby' => 'name', 'show_count' => $c,
'hierarchical' => $h);
...              これで並び順も変更できそう。
! ! <ul>
<?php
! ! $cat_args['title_li'] = '';
! ! wp_list_categories(apply_filters('widget_categories_args',
$cat_args));
?>
! ! </ul>
...
/**
 * Categories widget class
 *                                    該当部分のコード
 * @since 2.8.0
 */
class WP_Widget_Categories extends WP_Widget {
...
! ! $cat_args = array('orderby' => 'name', 'show_count' => $c,
'hierarchical' => $h);
...
! ! <ul>
<?php
              オプション値 $cat_args は
                配列なんだな。
! ! $cat_args['title_li'] = '';

            並び順は名前順になっているな。
! ! wp_list_categories(apply_filters('widget_categories_args',
$cat_args));
?>
! ! </ul>
...
/**
 * Categories widget class
 *                                    該当部分のコード
 * @since 2.8.0
 */
class WP_Widget_Categories extends WP_Widget {
...
                       フィルター名は
! ! $cat_args = array('orderby' => 'name', 'show_count' => $c,
                 「widget_categories_args」か。
'hierarchical' => $h);
...
! ! <ul>
<?php
! ! $cat_args['title_li'] = '';
! ! wp_list_categories(apply_filters('widget_categories_args',
$cat_args));
?>
! ! </ul>
...
FUNCTIONS.PHPに記載するコード
function change_widget_category_orderby( $cat_args )
{
    $cat_args['orderby'] = 'count';
    $cat_args['order'] = 'DESC';
    return $cat_args;
}
add_filter( 'widget_categories_args',
'change_widget_category_orderby' );
FUNCTIONS.PHPに記載するコード
function change_widget_category_orderby( $cat_args )
{
    $cat_args['orderby'] = 'count';
    $cat_args['order'] = 'DESC';
             wp_list_categories()の
    return $cat_args;
}
          オプション値を配列で受け取って…
add_filter( 'widget_categories_args',
'change_widget_category_orderby' );

                      ↑
              これがソースを読まないと分からない
FUNCTIONS.PHPに記載するコード
function change_widget_category_orderby( $cat_args )
{
    $cat_args['orderby'] = 'count';
    $cat_args['order'] = 'DESC';
    return $cat_args;
}                 変更したいオプション値を
                      設定して…
add_filter( 'widget_categories_args',
'change_widget_category_orderby' );
                           ↑
                こっちはCodexのwp_list_categoriesの
                  ページを見ないと分からない
FUNCTIONS.PHPに記載するコード
function change_widget_category_orderby( $cat_args )
{
    $cat_args['orderby'] = 'count';
    $cat_args['order'] = 'DESC';
    return $cat_args;                  返す
}
add_filter( 'widget_categories_args',
'change_widget_category_orderby' );
できた!




カテゴリーの
 投稿数順
   &
  降順
このように、フィルターフックは
フィルターされる値が何で
どのように使われるのかは、
フックによって異なるし、
ソースを見ないと分からない。
さらに、アクションフックは
WordPressがどんな順番で
何を処理しているのか、
ある程度わかってないと
どこにフックしていいのか
分からない。
え?結局
難しいじゃないかって…?


               ?
俺 の フック は そ んなに
 簡単 な わけ がない。
アクションフックとフィルターフックの
違い、基本的な考え方を知っておけば
そんなに怖くないよ!


     フィルターフックには
     Debug Bar Extender プラグインの
     Variable Lookup 機能が便利
     http://wordpress.org/extend/plugins/debug-bar-extender/
フックに関するブログを色々アップしてます。
フィルターフック:カスタムメニューの項目に付与されるクラスをカスタマイズする
http://notnil-creative.com/blog/archives/1615

フィルターフック:検索結果で投稿タイプごとに違うテンプレートファイルを使う
http://notnil-creative.com/blog/archives/1566

アクションフック:テーマからJavascriptやCSSを読み込む書き方まとめ
http://notnil-creative.com/blog/archives/1299

アクションフック:ツールバーをカスタマイズする
http://notnil-creative.com/blog/archives/1163

アクションフック:パンくずナビゲーション(Breadcrumb NavXT)をカスタマイズする
http://notnil-creative.com/blog/archives/981

フィルターフック:ギャラリーをカスタマイズして好きなjQueryプラグインを使う
http://notnil-creative.com/blog/archives/969
Thanks!

Weitere ähnliche Inhalte

Was ist angesagt?

Perkütan Endoskopik Gastrostomi
Perkütan Endoskopik GastrostomiPerkütan Endoskopik Gastrostomi
Perkütan Endoskopik Gastrostomiendohem
 
Cargo makeを使ってみた話
Cargo makeを使ってみた話Cargo makeを使ってみた話
Cargo makeを使ってみた話emakryo
 
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMAN
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMANPreeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMAN
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMANsbkavak
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略yoku0825
 
Basagrisi (fazlası için www.tipfakultesi.org )
Basagrisi (fazlası için www.tipfakultesi.org )Basagrisi (fazlası için www.tipfakultesi.org )
Basagrisi (fazlası için www.tipfakultesi.org )www.tipfakultesi. org
 
जूलियस न्येरेरे
जूलियस  न्येरेरेजूलियस  न्येरेरे
जूलियस न्येरेरेDr. Mamata Upadhyay
 
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計コンポーネント指向と余白の設計
コンポーネント指向と余白の設計Manabu Yasuda
 
Temporal kemik anatomiisi işitme ve denge fizyolojiisi
Temporal kemik anatomiisi işitme ve denge fizyolojiisiTemporal kemik anatomiisi işitme ve denge fizyolojiisi
Temporal kemik anatomiisi işitme ve denge fizyolojiisi0034muslim
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則Hiroshi Tokumaru
 
Metanol zehirlenmesi
Metanol zehirlenmesiMetanol zehirlenmesi
Metanol zehirlenmesigopacil
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 

Was ist angesagt? (16)

Perkütan Endoskopik Gastrostomi
Perkütan Endoskopik GastrostomiPerkütan Endoskopik Gastrostomi
Perkütan Endoskopik Gastrostomi
 
Cargo makeを使ってみた話
Cargo makeを使ってみた話Cargo makeを使ってみた話
Cargo makeを使ってみた話
 
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMAN
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMANPreeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMAN
Preeklampsi tanı ve yönetimi 2015 15. ULUSAL PERİNATOLOJİ KONGRESİ, DALAMAN
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
Basagrisi (fazlası için www.tipfakultesi.org )
Basagrisi (fazlası için www.tipfakultesi.org )Basagrisi (fazlası için www.tipfakultesi.org )
Basagrisi (fazlası için www.tipfakultesi.org )
 
जूलियस न्येरेरे
जूलियस  न्येरेरेजूलियस  न्येरेरे
जूलियस न्येरेरे
 
Sunum 4
Sunum 4Sunum 4
Sunum 4
 
Microfonando um coral revisado
Microfonando um coral  revisadoMicrofonando um coral  revisado
Microfonando um coral revisado
 
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計コンポーネント指向と余白の設計
コンポーネント指向と余白の設計
 
check_sap_health
check_sap_healthcheck_sap_health
check_sap_health
 
Temporal kemik anatomiisi işitme ve denge fizyolojiisi
Temporal kemik anatomiisi işitme ve denge fizyolojiisiTemporal kemik anatomiisi işitme ve denge fizyolojiisi
Temporal kemik anatomiisi işitme ve denge fizyolojiisi
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
Metanol zehirlenmesi
Metanol zehirlenmesiMetanol zehirlenmesi
Metanol zehirlenmesi
 
Onkolojik Aciller
Onkolojik AcillerOnkolojik Aciller
Onkolojik Aciller
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 

Andere mochten auch

WordBench 東京 とは
WordBench 東京 とはWordBench 東京 とは
WordBench 東京 とはMignon Style
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0Yuki Okamoto
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼Mignon Style
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜Mignon Style
 
ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術Mignon Style
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim McKeeth
 
Show bai tan go cho em
Show bai tan go cho emShow bai tan go cho em
Show bai tan go cho emPham Anhtuan
 
Scramble1
Scramble1Scramble1
Scramble1lmielke
 
Perwil kelompok
Perwil kelompokPerwil kelompok
Perwil kelompokfranqpunk
 
Maria lauer what a wonderfull_world_la
Maria lauer what a wonderfull_world_laMaria lauer what a wonderfull_world_la
Maria lauer what a wonderfull_world_laDrMaria2011
 
Introduction
IntroductionIntroduction
Introductionxoanohn
 
世界再大也要回家
世界再大也要回家世界再大也要回家
世界再大也要回家政瑜 王
 
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)Tyo SBS
 
Eaindray's Tea Shop Photo Essay
Eaindray's Tea Shop Photo EssayEaindray's Tea Shop Photo Essay
Eaindray's Tea Shop Photo EssayISYGrade6
 
Air Car - Ad Design 2010, Patel Hall
Air Car - Ad Design 2010, Patel HallAir Car - Ad Design 2010, Patel Hall
Air Car - Ad Design 2010, Patel Hallsomnathmeher
 

Andere mochten auch (20)

WordBench 東京 とは
WordBench 東京 とはWordBench 東京 とは
WordBench 東京 とは
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
 
ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
concrete5 in Japan 2014
concrete5 in Japan 2014concrete5 in Japan 2014
concrete5 in Japan 2014
 
Show bai tan go cho em
Show bai tan go cho emShow bai tan go cho em
Show bai tan go cho em
 
Scramble1
Scramble1Scramble1
Scramble1
 
Deadspace pdf
Deadspace pdfDeadspace pdf
Deadspace pdf
 
Perwil kelompok
Perwil kelompokPerwil kelompok
Perwil kelompok
 
Maria lauer what a wonderfull_world_la
Maria lauer what a wonderfull_world_laMaria lauer what a wonderfull_world_la
Maria lauer what a wonderfull_world_la
 
Introduction
IntroductionIntroduction
Introduction
 
世界再大也要回家
世界再大也要回家世界再大也要回家
世界再大也要回家
 
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)
Kisi kisi materi tajuk subyek keislaman (TSI-PII-2010-UINSUKA)
 
Lot’s wife
Lot’s wifeLot’s wife
Lot’s wife
 
Eaindray's Tea Shop Photo Essay
Eaindray's Tea Shop Photo EssayEaindray's Tea Shop Photo Essay
Eaindray's Tea Shop Photo Essay
 
Air Car - Ad Design 2010, Patel Hall
Air Car - Ad Design 2010, Patel HallAir Car - Ad Design 2010, Patel Hall
Air Car - Ad Design 2010, Patel Hall
 

Ähnlich wie 俺のフックがこんなに簡単なわけがない。

Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
WordPress のキャッシュ機構
WordPress のキャッシュ機構WordPress のキャッシュ機構
WordPress のキャッシュ機構katanyan
 
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable TypeMTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable TypeYujiro Araki
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28Kite Koga
 
PHP Object Injection入門
PHP Object Injection入門PHP Object Injection入門
PHP Object Injection入門Yu Iwama
 
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックWordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックTakashi Uemura
 
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013純生 野田
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012Yusuke Ando
 
Wb osaka 20120623
Wb osaka 20120623Wb osaka 20120623
Wb osaka 20120623Miho Ishida
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_QueryHidekazu Ishikawa
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~leverages_event
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter IntegrationKazuki Nakajima
 
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料Zend Db Table拡張説明資料
Zend Db Table拡張説明資料co-hey japan
 

Ähnlich wie 俺のフックがこんなに簡単なわけがない。 (20)

Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
WordPress のキャッシュ機構
WordPress のキャッシュ機構WordPress のキャッシュ機構
WordPress のキャッシュ機構
 
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable TypeMTDDC Meetup Tokyo 2011:もっとディープにMovable Type
MTDDC Meetup Tokyo 2011:もっとディープにMovable Type
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
PHP Object Injection入門
PHP Object Injection入門PHP Object Injection入門
PHP Object Injection入門
 
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックWordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
 
MT meets PHP
MT meets PHPMT meets PHP
MT meets PHP
 
Currying in perl
Currying in perlCurrying in perl
Currying in perl
 
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
 
Ci tutorial
Ci tutorialCi tutorial
Ci tutorial
 
Wb osaka 20120623
Wb osaka 20120623Wb osaka 20120623
Wb osaka 20120623
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
 
swooleを試してみた
swooleを試してみたswooleを試してみた
swooleを試してみた
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
 
WordBeach @kurudrive
WordBeach @kurudriveWordBeach @kurudrive
WordBeach @kurudrive
 
SaCSS vol.24
SaCSS vol.24SaCSS vol.24
SaCSS vol.24
 

Mehr von Hishikawa Takuro

これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!
これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!
これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!Hishikawa Takuro
 
エンジニアのための営業入門
エンジニアのための営業入門エンジニアのための営業入門
エンジニアのための営業入門Hishikawa Takuro
 
concrete5 CMS「運用」ケーススタディ
concrete5 CMS「運用」ケーススタディconcrete5 CMS「運用」ケーススタディ
concrete5 CMS「運用」ケーススタディHishikawa Takuro
 
Calypso動かしてみたよ!
Calypso動かしてみたよ!Calypso動かしてみたよ!
Calypso動かしてみたよ!Hishikawa Takuro
 
concrete5 最新事情 2015
concrete5 最新事情 2015concrete5 最新事情 2015
concrete5 最新事情 2015Hishikawa Takuro
 
concrete5セミナー資料公開版
concrete5セミナー資料公開版concrete5セミナー資料公開版
concrete5セミナー資料公開版Hishikawa Takuro
 
WordPress使いのためのconcrete5入門
WordPress使いのためのconcrete5入門WordPress使いのためのconcrete5入門
WordPress使いのためのconcrete5入門Hishikawa Takuro
 
concrete5で行なうcms導入提案のポイント
concrete5で行なうcms導入提案のポイントconcrete5で行なうcms導入提案のポイント
concrete5で行なうcms導入提案のポイントHishikawa Takuro
 
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイドはじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイドHishikawa Takuro
 
CMS導入で企業のWebサイト運営はこう変わる!
CMS導入で企業のWebサイト運営はこう変わる!CMS導入で企業のWebサイト運営はこう変わる!
CMS導入で企業のWebサイト運営はこう変わる!Hishikawa Takuro
 
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法Hishikawa Takuro
 
Getting Started with WordPress JSON REST API
Getting Started with WordPress JSON REST APIGetting Started with WordPress JSON REST API
Getting Started with WordPress JSON REST APIHishikawa Takuro
 
concrete5
 バージョン5.7のご紹介
concrete5
 バージョン5.7のご紹介concrete5
 バージョン5.7のご紹介
concrete5
 バージョン5.7のご紹介Hishikawa Takuro
 
クライアントに感謝されるCMS導入のコツ
クライアントに感謝されるCMS導入のコツクライアントに感謝されるCMS導入のコツ
クライアントに感謝されるCMS導入のコツHishikawa Takuro
 
concrete5 5.6.3.1日本語版の紹介
concrete5 5.6.3.1日本語版の紹介concrete5 5.6.3.1日本語版の紹介
concrete5 5.6.3.1日本語版の紹介Hishikawa Takuro
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識Hishikawa Takuro
 
concrete5って何?〜Web制作者対象〜2014年版
concrete5って何?〜Web制作者対象〜2014年版concrete5って何?〜Web制作者対象〜2014年版
concrete5って何?〜Web制作者対象〜2014年版Hishikawa Takuro
 

Mehr von Hishikawa Takuro (20)

これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!
これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!
これから concrete5 を始める Web 制作者に伝えたい concrete5 と WordPress ここが一緒、ここが違う!
 
エンジニアのための営業入門
エンジニアのための営業入門エンジニアのための営業入門
エンジニアのための営業入門
 
concrete5 CMS「運用」ケーススタディ
concrete5 CMS「運用」ケーススタディconcrete5 CMS「運用」ケーススタディ
concrete5 CMS「運用」ケーススタディ
 
Calypso動かしてみたよ!
Calypso動かしてみたよ!Calypso動かしてみたよ!
Calypso動かしてみたよ!
 
concrete5の紹介
concrete5の紹介concrete5の紹介
concrete5の紹介
 
concrete5 最新事情 2015
concrete5 最新事情 2015concrete5 最新事情 2015
concrete5 最新事情 2015
 
concrete5セミナー資料公開版
concrete5セミナー資料公開版concrete5セミナー資料公開版
concrete5セミナー資料公開版
 
WordPress使いのためのconcrete5入門
WordPress使いのためのconcrete5入門WordPress使いのためのconcrete5入門
WordPress使いのためのconcrete5入門
 
concrete5で行なうcms導入提案のポイント
concrete5で行なうcms導入提案のポイントconcrete5で行なうcms導入提案のポイント
concrete5で行なうcms導入提案のポイント
 
concrete5.7のご紹介
concrete5.7のご紹介concrete5.7のご紹介
concrete5.7のご紹介
 
世界一即戦力なCMS
世界一即戦力なCMS世界一即戦力なCMS
世界一即戦力なCMS
 
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイドはじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
はじめての concrete5 でウェブサイト作成〜入門チュートリアルガイド
 
CMS導入で企業のWebサイト運営はこう変わる!
CMS導入で企業のWebサイト運営はこう変わる!CMS導入で企業のWebサイト運営はこう変わる!
CMS導入で企業のWebサイト運営はこう変わる!
 
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法
オープンソースCMSに学ぶ、前PSR時代のプロジェクトが脱レガシーする5つの方法
 
Getting Started with WordPress JSON REST API
Getting Started with WordPress JSON REST APIGetting Started with WordPress JSON REST API
Getting Started with WordPress JSON REST API
 
concrete5
 バージョン5.7のご紹介
concrete5
 バージョン5.7のご紹介concrete5
 バージョン5.7のご紹介
concrete5
 バージョン5.7のご紹介
 
クライアントに感謝されるCMS導入のコツ
クライアントに感謝されるCMS導入のコツクライアントに感謝されるCMS導入のコツ
クライアントに感謝されるCMS導入のコツ
 
concrete5 5.6.3.1日本語版の紹介
concrete5 5.6.3.1日本語版の紹介concrete5 5.6.3.1日本語版の紹介
concrete5 5.6.3.1日本語版の紹介
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識
 
concrete5って何?〜Web制作者対象〜2014年版
concrete5って何?〜Web制作者対象〜2014年版concrete5って何?〜Web制作者対象〜2014年版
concrete5って何?〜Web制作者対象〜2014年版
 

Kürzlich hochgeladen

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Kürzlich hochgeladen (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

俺のフックがこんなに簡単なわけがない。