【wordpress】記事に次の記事(next_post_link)・前の記事(previous_post_link)のリンクにclass追加 

記事ページにNEXT/PREVを追加したかったので

こちらを参考に(英語)追加
http://justinklemm.com/add-class-to-wordpress-next_post_link-and-previous_post_link-links/

ただ、上記はNEX/PREVとも同じクラスが出力されてしまうので
関数名と変数を変えて、それぞれで定義して完了♪

add_filter('next_post_link', 'post_next_attributes');
add_filter('previous_post_link', 'post_prev_attributes');
function post_next_attributes($output1) {
    $code1 = 'class="page-numbers next"';
    return str_replace('<a href=', '<a '.$code1.' href=', $output1);
}
<!---->

function post_prev_attributes($output2) {
    $code2 = 'class="page-numbers prev"';
    return str_replace('<a href=', '<a '.$code2.' href=', $output2);
}
<!---->

久々の更新でした。

15/11/27追記
あれ、なんかコード表示エラーがでてるなぁ引用符で囲ってみるか
レイアウト崩れたぁぁ
コードかコードがいけないのか?!工エエェェ(´゚д゚`)ェェエエ工

どうも 「>」がなかったのが原因ぽかったので、コメントアウト入れて対応…
びっくりした…。

カスタム投稿 管理画面 一覧にカテゴリ絞込み追加

メーモー
いろいろ試しましたがこちらのサイト様のが分かりやすい&簡単でした
http://yusukexp.com/wordpress/snippet/taxonomy-filter/

例)カスタム投稿タイプが「shop」、カスタム分類(カテゴリ)が
「shop_cat」の場合

<?php
//カスタム投稿一覧にカテゴリ絞込み追加
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );
function add_post_taxonomy_restrict_filter() {
    global $post_type;
    if ( 'shop' == $post_type ) {
        ?>
        <select name="shop_cat">
            <option value="">カテゴリー指定なし</option>
            <?php
            $terms = get_terms('shop_cat');
            foreach ($terms as $term) { ?>
                <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
            <?php } ?>
        </select>
        <?php
    }
}
?>

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

例)カスタム投稿タイプは「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;
	});
  });