2014/6/21(土) に開催されたオープンソースカンファレンス北海道にて、WordPress と baserCMS のセミナー & ブース出展を行ってきました!
今年はSaCSS(sapporo.css)ブースも加わり、メンバーのみなさまのご協力のもと、無事終了することが出来ました。ありがとうございました。
baserCMS ブースには、福岡より海老庵さんも! baser に興味を持っていただいた方の質問にたくさん答えてくださいました。(さすが)
マリメロちゃん製作のわぷーと、コモモさん製作のべっしーのかぶりものにより、いつにもましてブースも華やか(!?)に。 OSC らしい演出で良かったです。 😀
WordPress セミナー
ショッピングカートのサンプルテーマを使って、カスタムフィールドやカスタム投稿、フィルターフックの使いどころなどを、スクリーンキャストで実際にカーソルを動かしながら紹介しました。
テーマの名前は wordCart。 実は baserCMS でつくった baserCart を OSC のために WordPress に移植したものです。
スクリーンキャストを使っている関係上、スライドだけだと意味不明なので、ここでは fucntions.php のコード断片を紹介しておきます。
商品の入れ物となるカスタム投稿と、カスタム分類の作成。
/** * カスタム投稿、カスタム分類タイプを追加. */ add_action('init', function () { register_taxonomy('item_tag', array('item'), array( 'label' => '商品タグ', 'show_ui' => true, 'hierarchical' => true, 'rewrite' => array('slug' => 'item/category', 'with_front' => false) ) ); register_post_type('item', array( 'label' => '商品', 'public' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields'), 'has_archive' => true, 'rewrite' => array('slug' => 'item', 'with_front' => false) )); });商品に添付されたメディア(画像)をテンプレートファイルから取得する関数。
/** * 記事に添付された画像を取得. */ function the_images() { $images = get_children(array( 'post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC')); $img = array(); foreach(array_keys($images) as $key) { array_push($img, wp_get_attachment_image($key, 'full')); } return array_reverse($img); }投稿ページを固定ページに割り当て、フロントページにカスタム投稿のアーカイブを出力するための pre_get_posts フィルターフック。
/** * フロントページに商品の一覧を表示. */ add_filter('pre_get_posts', function($wp_query) { // 管理画面かメインループではなかったら何もしない if(is_admin() || !$wp_query->is_main_query()) { return; } // フロントページなら投稿タイプ・商品を表示 if($wp_query->is_home() && $wp_query->get('pagename') == '') { $wp_query->set('post_type', 'item'); } });フロントページでカスタム分類アーカイブと同じテンプレートファイル(taxonomy.php)を使うために、選択されるテンプレートファイルを変更するための template_include フィルターフック。
/** * フロントページのテンプレートファイルは taxonomy.php. */ add_filter('template_include', function($template) { global $wp_query; if($wp_query->is_home() && $wp_query->get('pagename') == '') { return get_taxonomy_template(); } return $template; });各商品の下に Trust Form プラグインで作成したフォームを配置するための、the_content フィルターフック。
/** * カスタム投稿・商品の時は注文フォームを記事の下に付与する. */ add_filter('the_content', function($content) { if(get_post_type() == 'item') { return $content . ' <hr /> [trust-form id=10]'; } return $content; }, 0);今年は少し製作よりの内容とさせていただいたのですが、セミナーで伺ってみたところ、来られた方の半数以上 WordPress 製作を行われている方とのことで、実際にサイトを作る際のヒントになりましたら嬉しく思います。
baserCMS セミナー
baserCMS セミナーでは、スライドとスクリーンキャストで baserCMS の特徴を説明させていただきました。
スクリーンキャストなしだと短いですが、端的に baser の特徴が分かると思いますので、よければご覧ください。(スライドシェアにアップロードしたら、すごいフォントになったですが、ノリでご覧ください。。)
前日までの数十時間におよぶ準備や、WordPress から2コマ連続セミナーだったのもあり、途中から放心にて事前録画のスクリーンキャストの内容を忘れてしまい、ぐだぐだになってすいません。。セミナー後に途中からしにそうになっていたと聞きました。。
それでもセミナー後にブースにいくつも質問をいただいたり、アンケートで面白かったと書いてくださった方がいてくれたりで嬉しかったです! ありがとうございました。
OSC北海道 2014 大懇親会
終了後の大懇親会は、アサヒビール園にてジンギスカンパーティー 😀
後ろにいるのは…!!w
OSC運営スタッフのみなさま、お疲れ様でした!
翌日
OSC北海道の翌日は、海老庵さん、モリコ、マリメロ、コモモで美瑛・富良野観光へ。 🙂
ジェットコースターロードすごい。
来年のOSCも楽しみです。