忍者ブログ
14 January

カスタム投稿タイプ custom post type UI

カスタム投稿タイプ custom post type UI

ブログ、固定ページ以外に、管理画面で別メニューにて投稿欄を作れる
例えばブログの中に「お知らせ」カテゴリを作って「お知らせ」スラッグにリンク貼れば同じようなことだけど、「お知らせ」というメニューを管理画面サイドバーに別で作れば、完全に分けられる。客にわかりやすく実装できる、など。

詳しいまとめ
新規作成時はここを見て設定する
http://kotori-blog.com/wordpress/custom_post_type_ui/
http://kotori-blog.com/wordpress/posttype_taxonomy/
http://kotori-blog.com/wordpress/custom_post_type_permalinks/

1、まず上記サイトみて設定。カスタム投稿タイプ作り。
2、archive-○○○.php、page-○○○.php、single-○○○.php を必要であれば
カスタム投稿タイプに合わせて作成する。
archive-○○○.php はカスタム投稿タイプのトップページになる

archive-○○○.php を使いたい場合の注意点
設定画面で「Has Archive」を True にする。
archive.phpアップしたのに、エラーログがでて画面が白い。
なんで?has archive はtrueにしたはず・・・と思って確認すると、falseになっていた。しね
trueにしてもう一度archive画面をリロードするが白いまま。
パーマリンク設定をそのまま更新保存せよっていうのをどこかでみたので、
何も変更せず保存を押してリロードしたらちゃんと表示された。

アーカイブのパーマリンクを日付URLにしたい、月別アーカイブを出したいときは
「custom post UI パーマリンク」というプラグインをいれる

http://www.nishi2002.com/7995.html
カスタム投稿タイプの月別アーカイブリストを表示させる

<ul>
<?php wp_get_archives('type=monthly&post_type=カスタム投稿タイプ名'); ?>
</ul>


サイドバーに月別アーカイブを出したかったので、上記をphpに直接かくか、
ウィジェットのテキストにショートコードを用いて書き込む。
PR
18 December

固定ページごとににタイトル別画像を使いたい

http://mypacecreator.net/blog/archives/1230


title_スラッグ名.jpg という規則でファイル名をつける

<img src="<?php echo get_template_directory_uri(); ?>/images/title_<?php echo esc_attr($post->post_name); ?>.jpg" alt="<?php the_title(); ?>" />



14 December

投稿エディタ内で、スマホとPCの条件分岐のショートコード

http://ankare2dx.org/wp-post-pasokon-or-sumaho/

functions.php
function pccontents( $atts, $content = null ) {
if(is_mobile()) { 
        return '';  
 } else {
        return '' . $content . '';
 }
}
function spcontents( $atts, $content = null ) {
if(is_mobile()) { 
        return '' . $content . '';  
 } else {
        return '';
 }
}
add_shortcode('pc-mieru', 'pccontents');
add_shortcode('sp-mieru', 'spcontents');

投稿エディタ内
[pc-mieru]パソコンからのみ表示される[/pc-mieru]
[sp-mieru]スマホからのみ表示される[/sp-mieru]


http://www.nxworld.net/wordpress/wp-is-mobile.html
functions.php の is_mobile 設定
function is_mobile(){
    $useragents = array(
        'iPhone',          // iPhone
        'iPod',            // iPod touch
        'Android',         // 1.5+ Android
        'dream',           // Pre 1.5 Android
        'CUPCAKE',         // 1.5+ Android
        'blackberry9500',  // Storm
        'blackberry9530',  // Storm
        'blackberry9520',  // Storm v2
        'blackberry9550',  // Storm v2
        'blackberry9800',  // Torch
        'webOS',           // Palm Pre Experimental
        'incognito',       // Other iPhone browser
        'webmate'          // Other iPhone browser
    );
    $pattern = '/'.implode('|', $useragents).'/i';
    return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}




テンプレート.phpに wp_is_mobile として書くのはあるけど、エディタでそれは使えない
直接phpが書き込めるようになるプラグインはセキュリティの心配をチラホラ目にするので避けたい
それならショートコード化する

その前提
functions.php の is_mobile 設定 が書き込まれていること
wp_mobileが出てくる前に使われていたis_mobileはこの設定が必要っぽい
しかしwp_is_mobileは含む ipad なため、UA判別のときにipadはPCと同じようにしたい。
ipadも今じゃ画面サイズ大きいからPCで十分だよね。
13 December

固定ページに新着情報をショートコードを用いてのせる

http://www.virment.com/wordpress/1582/

<?php echo do_shortcode('[shortcode1]'); ?>










固定ページをフロントページにするとき、新着情報としてループを取得することができないのでショートコードに詰め込んで固定ページに書く。
ショートコードの内容をfunctions.phpに書く。
それかテンプレート内にショートコードの呼び出しタグを書く
30 November

ブログの1枚目の画像をアイキャッチに設定する

http://crunchtimer.jp/blog/technology/php/1609/

<?php if(has_post_thumbnail()) :?>

   //記事にアイキャッチが設定してあるならそれを表示する
      <div class="thumb"><?php the_post_thumbnail('thumbnail'); ?></div>

   
   <?php else: ?>
   //ないなら文字列をpregmachさせ
      <?php preg_match('/wp-image-(d+)/s' , $post->post_content, $thumb);?>
   
      <?php if($thumb): ?>
   //1枚目の挿入画像をアイキャッチとして表示する
         <div class="thumb"><?php echo wp_getattachment_image($thumb[1], 'thumbnail'); ?></div>
<?php else: ?>
    //画像自体なければ、それ用に作ったdefault.jpgをアイキャッチとして表示する
        <div class="thumb"><img src="<?php echo get_template_directory_uri(); ?>/images/default.jpg" width="150" height="150" style="opacity:0.7;"></div>
        
        
      <?php endif; ?>
        <?php endif; ?>