忍者ブログ
10 September

スマホとPCでの表示の振り分け Wordpress

http://webtrace-cuisine.com/201302/wpismobile/
例によって覚書コピペ。わかりやすくまとまっていました。

①スマホでの表示時のみ、特定のコンテンツを表示させる

<?php if (wp_is_mobile()) :?>
【スマホで見たときのみ表示させるコンテンツ】
<?php endif; ?>>

②上と全く反対で、
スマホでの表示時のみ、特定のコンテンツを表示させない

(wp の前に反意を意味するびっくりマークを付けることで「モバイル機器以外なら→つまり PC での表示だったならば」という意味になります)

<?php if (!wp_is_mobile()) :?>
【PC で見たときのみ表示させるコンテンツ】
<?php endif; ?>

③PC と スマホで表示コンテンツをそれぞれ分ける

<?php if (wp_is_mobile()) :?>
【スマホで見たときのみ表示させるコンテンツ】
<?php else: ?>
【PC で見たときのみ表示させるコンテンツ】
<?php endif; ?>


通常のHTMLの場合は「display:none;」で非表示したり:block;で表示したりしてかなりめんどうでした。WPはこれで簡単だし、余計な読み込みもなくなります。

PR
28 August

アーカイブ別、カテゴリー別テンプレートの作り方

[解決済み] カスタム投稿タイプのアーカイブ用テンプレート (7 件の投稿)
http://ja.forums.wordpress.org/topic/6064

カテゴリー別

category-6.php など該当カテゴリーIDの数字をつける


カスタムポストUIで作った投稿ポストに別のテンプレートを使いたい場合

archive-スラッグ名.php
'has_archive' => true 必須 オプションでtrueに設定する
16 August

クロールエラーをなくしたい 404.phpを作る ワードプレス

404.phpを作る


index.phpをコピーしてファイル名を変更する
<p>指定されたページは存在しませんでした</p>
<a href="<?php echo home_url(); ?>">トップページへ戻る</a>
とでも書き込む

.htaccessの先頭
ErrorDocument 404 /index.php?error=404
と書き込む
wpが入ってるフォルダを作っているなら
ErrorDocument 404 /blog/index.php?error=404
などと書きこむ
※wpがインストールされてるフォルダ内の.htaccessに書く
上の階層にもあるしよくわかんなくて色々やった

page.php single.php archive.php index.php(記事があれば)の先頭(get_headerの上)に
<?php if (!have_posts()) {
header("HTTP/1.1 404 Not Found");
include (TEMPLATEPATH . '/404.php');
return; } ?>

と書き込む
※404.phpに書いてはいけない。適当に書いたら存在しないページが真っ白になった。
http://www.koikikukan.com/archives/2007/05/21-022525.php

wpのテンプレを使用すると、記事のとこには大抵「記事がなかったらこの文を出す」っていう命令があると思います。でもそれだと404をgoogleにだしてないということになるらしいので、無いページは無い!ということをGoogleに伝えるために、記事がない場合は404.phpを出すようにするコードです。

既に削除したり変更したスラッグってありますよね。
WPは簡単にページが作れるので作っちゃ捨て、みたいなとこあると思います。
でも一定期間おいといてその間にクロールがきちゃってURL拾われるとやばいです。
削除したあとにまたクロールが来てページがないよーって言われます。
この404クロールエラーは検索結果に影響しないってGoogleがいってるのでほっといていいと思うんですが、色々と煩い人もいるのでなくす必要がある人もいるかと思います。

手っ取り早く404クロールエラーをなくすのはrobots.txtでクロールが来ないようにブロックすることみたいです。でもWPで適当に記事作って捨ててるとゴミがたくさん404エラーで出てきてrobots.txtが汚くなります。なんかそれは嫌なんですよね。

次に無いページからリダイレクトすることです。
でもそれは「ソフト404エラー」といってあまりよろしくないらしいです。
リダイレクトは古いURLから新しいURLに飛ばすのが本来の使い方っぽい?
でもWPは初期設定で.htaccessにindexにリダイレクト命令が書き込まれています。
だから色々設定が必要なんです。

どこかの誰かが間違ったURLを貼り、そのリンクを誰かがクリックしたとしても404クロールエラーが出るそうです。どうしようもないよね。私のせいじゃないんですけど。
使ってるスラッグがおかしくて機能してないならともかく、削除していらないスラッグのことでエラーでてどうこういわれるとかイライラするわ。
16 August

wordpress seo by yoast で設定すること 覚書 ワードプレス

wordpress seo by yoast


日本語化パッチの導入
http://pasonal.com/wordpress-seo-by-yost-jp-download/

header.phpの<title>の中身を下記変更
<title><?php wp_title( '|', true, 'right' );?></title>

テンプレテーマを使うとbloginfo("name")みたいにサイト名を表示するテンプレートタグが書いてあると思います。しかしSEOプラグイン使うなら、これが邪魔になってくるので消します。

カテゴリーと、カスタムフィールドのみで作られた投稿内容がないページはプラグインでdescriptionを勝手に作ってくれません。なので個別ページで記述します。
25 July

アドバンスドカスタムフィールド「Repeater Field」の表示を逆にする ワードプレス

<?php $rows = get_field('gallery');?>
<?php if($rows):?>
<?php $rows = array_reverse($rows);?>  // array_reverse();で配列の逆表示

(ループ内には入れないけどpage.phpに直接書きこみたいものはここへ)
<div>
<?php foreach($rows as $row) { // ループ開始
        // ループ内で使用する画像の指定
        $attachment_id = $row['gallery_img'];
        $image = wp_get_attachment_image_src( $attachment_id, 'gallery-custom-image' );
        $size = "custom-image"; // (thumbnail, medium, large, full or custom size)
        $imageF = wp_get_attachment_image_src( $attachment_id, 'full' );
        // url = $image[0];
        // width = $image[1];
        // height = $image[2];
?>

<table class="gallery_box"> <!--表示させたいカスタムフィールドの中身-->
  <tr>
    <th colspan="2"><a href="<?php echo $imageF[0]; ?>" rel="lightbox"><img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" height="<?php echo $image[2]; ?>"/></a>
</th>
  </tr>
  <tr>
    <th>題名</th>
    <td><?php echo $row['サブフィールド名']; ?></td>
  </tr>
</table>

 <?php  } ?>  // ループ終わり

</div>

(ループ内には入れないけどpage.phpに直接書きこみたいものはここへ)

<?php endif; ?><!--//<?php if($rows):?>-->


カスタムサイズの画像をサムネイルにして、クリックするとライトボックスでフル画像が開く。
Repeater Fieldは旧→新という順番で追加される。
ドラック&ドロップで順番は自由に入れ替えられるが、一斉に逆順序にしたいこともあるとおもう。
ギャラリーなど画像を並べたら、新しいものを上にしたいのではなかろうか?
そんなとき array_reverse(); を使って配列を逆にする。

http://www.advancedcustomfields.com/resources/field-types/repeater/
http://ja.forums.wordpress.org/topic/134901?replies=5#post-185382