カスタム投稿タイプのテンプレート名覚書

例)カスタム投稿タイプは「shop」、カスタム分類は「shop_cat」の場合

【個別テンプレート】
single-shop.php

【アーカイブ】
taxonomy-shop_cat.php

これに…これになる!!!
「taxonomy-○○○.php」

「archive-shop_cat.php」でひたすら挑戦してましたorz

[hosts]WIN7とMACのhostsの場所

macはメイン機でないからよく忘れてしまうのでメモメモ

windows7は…

C:\Windows\System32\drivers\etc

をフォルダのアドレス部分にコピペでOK

macは
【finder】→【フォルダへ移動】→【etc/】を入力してフォルダ開く

hosts を選択して「テキストエディットで開く」で開く。

というか、なぜテキストエディタにドラッグで開けないのかしら...(知らないだけかもだけど)

etc

[wordpress]カスタム投稿タイプのコード

個人で作ってたテーマの中に何故か無かったのでついでに覚書

○○○部分を変更すればOK


<?php
/* Add Custom Type 
------------------------------------------*/
add_action('init', 'add_○○○_post_type');
function add_○○○_post_type() {
    $params = array(
            'labels' => array(
                    'name' => 'カスタム投稿タイプ',
                    'singular_name' => '取扱店舗',
                    'add_new' => '新規追加',
                    'add_new_item' => '記事を新規追加',
                    'edit_item' => '記事を編集する',
                    'new_item' => '新規記事',
                    'all_items' => '記事一覧',
                    'view_item' => '記事の説明を見る',
                    'search_items' => '検索する',
                    'not_found' => '記事が見つかりませんでした。',
                    'not_found_in_trash' => 'ゴミ箱内に記事が見つかりませんでした。'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array(
                    'title',
                    'editor',
                    'author',
                    'custom-fields',
            ),
            'taxonomies' => array('○○○_category','○○○_tag')
    );
    register_post_type('○○○', $params);
}


add_action('init', 'create_○○○_taxonomies');
function create_○○○_taxonomies() {
    // カテゴリを作成
    $labels = array(
            'name'                => 'カテゴリ',
            'singular_name'       => 'カテゴリ',
            'search_items'        => 'カテゴリを検索',
            'all_items'           => '全てのカテゴリ',
            'parent_item'         => '親カテゴリ',
            'parent_item_colon'   => '親カテゴリ:',
            'edit_item'           => 'カテゴリを編集',
            'update_item'         => 'カテゴリを更新',
            'add_new_item'        => '新規カテゴリを追加',
            'new_item_name'       => '新規カテゴリ',
            'menu_name'           => 'カテゴリ'
    );
    $args = array(
            'hierarchical'        => true,
            'labels'              => $labels,
            'rewrite'             => array( 'slug' => '○○○_cat' )
    );
    register_taxonomy( '○○○_category', '○○○', $args );

    // タグを作成
    $labels = array(
            'name'                => 'タグ',
            'singular_name'       => 'タグ',
            'search_items'        => 'タグを検索',
            'all_items'           => 'タグ',
            'parent_item'         => null,
            'parent_item_colon'   => null,
            'edit_item'           => 'タグを編集',
            'update_item'         => 'タグを更新',
            'add_new_item'        => '新規タグを追加',
            'new_item_name'       => '新規タグ',
            'separate_items_with_commas'   => 'タグをコンマで区切る',
            'add_or_remove_items'          => 'タグを追加or削除する',
            'choose_from_most_used'        => 'よく使われているタグから選択',
            'not_found'                    => 'アイテムは見つかりませんでした',
            'menu_name'                    => 'タグ'
    );
    $args = array(
            'hierarchical'            => false,
            'labels'                  => $labels,
            'update_count_callback'   => '_update_post_term_count',
            'rewrite'                 => array( 'slug' => '○○○_tag' )
    );

    register_taxonomy( '○○○_tag', '○○○', $args );
}
?>

[Jquery]ページ一定移動でスクロールボタン表示

よくあるあれだす。

【1】汎用

    $(window).load(function() {
        $(window).scroll(function () {
            var s = $(this).scrollTop();
            var m = 200;
            if(s > m) {
                $("#pagetop").fadeIn('3000');
            } else if(50 > m) {
            }else {
                $("#pagetop").fadeOut('3000');
		}
        });
        $("#pagetop").click(function () {
            $('html,body').animate({ scrollTop: 0 }, '300');
            return false;
        });
    });

【2】ちょっと専用

    $(window).load(function() {
        var scount = 0;
	$(window).on("scroll touchmove", function(){ 
            var s = $(this).scrollTop();
            var m = 300;
            if(s > m) {
	       if(scount == 0) {
	        $("#pagetop").fadeTo("1000", 0.5);
		$("#pagetop").delay("2000").fadeTo("1000", 1);
		scount = 1;
          	}else {
		$("#pagetop").fadeTo("1000", 1);
		}
            }else {
	    $("#pagetop").stop().fadeOut();
		}
	});


        $("#pagetop").click(function () {
	    $("#pagetop").stop().fadeOut();
            $('html,body').animate({ scrollTop: 0 }, '300');
            return false;
        });
    });

【3】こちらのサイトさまの応用
スクロール完了(停止)の検出と、フローティングメニューの実装

$(function () {
    var $target = $("#pagetop"), 
        $window = $(window),
        $document = $(document),
        timerId,
        defaultPos = $target.offset().top,
        targetHeight = $target.outerHeight(true),
        containerHeight = $target.parent().height(),
        DURATION = 500;
    function floatingMenu(scrollTop) {
	$("#pagetop").fadeTo("3000", 1);
    }
    if (!$target.length) {
        return;
    }
    $window.bind("scrollFinish", function (event, scrollTop) {
        floatingMenu(scrollTop);
    });

    $window.bind("scroll", function () {
        var scrollTop = $document.scrollTop();
        var m = 300;
        if(scrollTop > m) {
	$("#pagetop").css("opacity", 0.5).fadeIn();
	}else {
	$("#pagetop").stop().fadeOut();
	}
        if (timerId) {
            clearTimeout(timerId);
        }
        timerId = setTimeout(function () {
            timerId = null;
            if(scrollTop > m) {
            $window.trigger("scrollFinish", [scrollTop]);
	    }
        }, 1000);
    });
    $window.unload(function () {
        $window.unbind("scroll scrollFinish");
    });
    $("#pagetop").click(function () {
        $('html,body').animate({ scrollTop: 0 }, '300');
        return false;
    });
});

【PHP】ユーザーエージェントでipad判定

<!--{php}-->
$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
if($isiPad){
    echo "";
}else{
    echo "<meta name=viewport content=width=1000, initial-scale=0, maximum-scale=1, user-scalable=1 />";
}

ipadのときは viewport出さないヨという指定です。
結構 うっかりそのままviewport書いてると、ipadでの表示ずれが起きてしまう確率高いので^^b

一応iphone取得も書いとこう

$isiPhone = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPhone');
php

[CSS3]レスポンシブで メディアクエリ使う際の注意点 印刷でレイアウトが崩れる対処

クライアントさんから指摘あるまで気にしてなかったのですが、
レスポンシブでメディアクエリで画面幅に沿ってCSS切り替えする際に

@media screen and ~

の記述だと 文字通り 「画面のみ」の表示となってしまうので

<style type="" media="all">

で対応させていても、スルーされます。なんてこったい。

対処方法は

@media print, screen and ~

と書くだけですが、スマホ向けのCSSでも書いてしまうと、
印刷プレビュー時にスマホのレイアウトが出てきてしまうので
基本はPCのみでOKだと思います。

印刷プレビュー マジであせりました…

[jquery]ページ内スクロール

メモメモ。説明書くのがメンドイ。
.btnクリックで自分のn番目の値を代入、n番目に該当する.contents_boxまでページ内スクロール!な感じ

 <div id="nav">
  <span class="btn">あああ</span>
  <span class="btn">いいい</span>
  <span class="btn">ううう</span>
 </div>

 <div  class="contents_box">
あああ のとび先
 </div>
 <div  class="contents_box">
いいい のとび先
 </div>
 <div  class="contents_box">
ううう のとび先
 </div>
$(document).ready(function(){
	$(".btn").click(function () {
		var i = $(".btn").index(this)
		var p = $(".contents_box").eq(i).offset().top;
		$('html,body').animate({ scrollTop: p }, 'fast');
		return false;
	});
  });

[jquery][bxslider]サムネイルや左右ボタンクリックで自動スライドがとまる時の対処

もはや私の使う定番スライダーとなっている bxsliderなのですがネックがpagerやナビをクリックした際に動作がとまってしまうことだったんですよね。

前に探したときは探し方が悪く(?)見つからなかったんですが、
やっぱり対処がありました。オプションに。「オプションに」oh… オプション見てたんですが(悪あがき)

さすがですbxslider様(-人-)ありがたやー。

var foo = $('.bxslider').bxSlider({
onSlideAfter: function () { foo.startAuto(); }
});

というわけでこの部分で対処可能。
引数にbxsliderの設定を代入してコントロール系クリックでスライドさせた後、また自動でスライドさせますよーって感じでしょうか。多分。

実際使うときはこっち

<script>
  $(function(){
var foo = $('.bxslider').bxSlider({
          auto: true,
          pause: 1000,
          speed: 1000,
          onSlideAfter: function () { foo.startAuto(); }
		});
  });
</script>