ループの最初の記事だけ違うデザインにする覚え書き

通常、記事はループを使って一覧表示をするのだけど、最初の記事だけ、、とか、最初の3つの記事だけデザインを変更して大きく表示させたいという時もあり、、覚え書き。
この記述は最初の1つめの記事の表示方法を変える場合。

<?php if(have_posts()): while(have_posts()): the_post(); $counter++; ?>
<?php if ($counter <= 1): ?><!-- 最初の記事判別 -->
// 最初の記事の内容を記述する
<?php else:?>
// 最初の記事以降のループ処理する内容を記述する
<?php endif;?><!-- /最初の記事判別 -->
<?php endwhile; endif; ?>

既存のテーマをカスタマイズする時、子テーマを使おぼえがき

クライアントの意向とか、予算の問題で既存のテーマを使うことが多いけど、結局cssやら、テンプレートファイルをカスタマイズすることになってしまう。
テンプレートファイルをまったくカスタマイズする必要がなければ、cssファイルのみcustom.cssとかにして、ヘッダの最後に読み込むようにすればいいけど、テーマを触るのであれば、子テーマを作ったほうがテーマがバージョンアップした時にカスタマイズしたファイルが全部上書きされてしまうことはないので、今回はそっちの方法のおぼえがき。

まず、テーマディレクトリ

/wp-content/themes/

に子テーマを入れるディレクトリを作成。
親テーマがこういうものだったら、

/wp-content/themes/themename(親テーマ)/

↓「_child」とかにすると分かりやすい。

/wp-content/themes/themename_child(子テーマ)/

次に子テーマの中に

functions.php(これも追記することが多いからね。)
style.css(上書きしていくので名前は変更しないで)
screenshot.png(テーマを選ぶときに表示される画像なので、これは新しく作成!)

なぞをコピー。

functions.phpは子テーマの方から読み込まれるそうなので、必要な部分だけを記述。
style.cssは最後に読み込んで必要な部分を上書きします。

あとは、style.cssのヘッダ部分に下記を記述

/*
Template:テンプレート名(abc)
Theme Name: abc_child
Theme URI:http://www.xxx.jp/abc/
Description:child theme of abc
Author:Your name
Version:1.0
*/

@import url(“../abc/style.css”);

↑これで親テーマを先にインポート。

これで設定は終了です。
後は管理画面から外観のテーマで今回作った子テーマをしていすれば、完了です。
必要なテンプレートだけをこっちのテーマディレクトリにコピーしてカスタマイズしていけるので、編集したファイルだけが分かるのも便利ねー。

一つ子テーマを使うと、、

<?php bloginfo('template_directory'); ?>

これでテーマディレクトリを指定できない。

<?php echo home_url( '/' ); ?>/wp-content/themes/themename/

こんな感じにホームディレクトリだけ指定するしかないかな。
もしくは

<?php echo bloginfo('stylesheet_directory'); ?>

これでもいいかも?

秘密鍵を使っているサーバで管理画面からプラグインのアップデートをするおぼえがき。

久しぶりにハマったのでおぼえがき。
クライアントのサーバは秘密鍵・公開鍵をつかってFTPをつかっていたので、当然wordpressでプラグインのアップデートをしようとするとひっかかります。
でも、それぞれのプラグインを個別でダウンロードして、個別で上書きするのもめんどくさいし、、ということで、やっぱりプラグインをつかってみることにしました。
SSH SFTP Updater Support
ssh

FTPで設定している通り、ホスト、ユーザ名を入れるところまではOK。
さて、秘密鍵、秘密っていうくらいなので、簡単な場所には保存していないし、、
これだっけ?っていうものも違うと出てしまう。

なので、久しぶりにターミナルを開いて、公開鍵の中身をしらべることに。
$cd ~/.ssh
$ls
ああ、あった。
open -e xxx_rsa.pub

中身をコピーして、privetekeyに貼り付けてみる。

うごかない。

そこから30分、死闘

何気なく隣にリストされていた、clientname_key.pemをひらいてみる。

ご丁寧に上下に「——private key——」とかかれていた。

いれてみる。

うごいた。

時間を返せ。。(T_T)

Katie 1歳になりました

birthday
あーんなに小さかったKatieもとうとう1歳になりました。
最初に来た時にはトイレもできず、毎日ウ◯チの匂いが漂って、どうなることかと心配したけど、気がつけばベランダか、外でできるように。

他のワンと仲良くなれるか心配で、恐る恐る行った代々木のドッグランでも堂々の「ブラックサンダー」の異名をいただくほどに、我がもの顔で遊べるまでになりました。
こーんなにハイパーだったら、お家の中もひっちゃかめっちゃかでしょ!
と言われますが、案外家では大人しくしています。
最初はチビも恐る恐る触っていたけど、今では兄弟のようにゴロゴロできるまでになり、Katieが居る生活が普通になりました。

大好きな彼もできました。笑
ハハも仲良しのお友達がたくさんできました。

leo2

leo

Contact form 7で確認用のメールアドレスのエラーチェックを入れるためのおぼえがき。

Contact Form 7でメールアドレスをチェックさせようとしたら、そういう機能はないのね、、
いつもどおり、ちゃーんと実装されている方がいらっしゃいました。

[Contact Form 7 4.1] 確認用メールアドレスのエラーチェック(最新版対応)

しかも、最新版に対応されていました。ありがとうございます。

functions.phpに下記を追加。

/*** add confirm mail add on contact form 7 */
add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
    $type = $tag['type'];
    $name = $tag['name'];
    $_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
    if ( 'email' == $type || 'email*' == $type ) {
        if (preg_match('/(.*)_confirm$/', $name, $matches)){
            $target_name = $matches[1];
            if ($_POST[$name] != $_POST[$target_name]) {
                if (method_exists($result, 'invalidate')) {
                    $result->invalidate( $tag,"確認用のメールアドレスが一致していません");
                } else {
                    $result['valid'] = false;
                    $result['reason'] = array( $name => '確認用のメールアドレスが一致していません' );
                }
            }
        }
    }
    return $result;
	
}

フォームのショートコード部分はこんなかんじで。

<p>メールアドレス<br />
[email* your-email] </p>

<p>メールアドレス (確認用)<br />
[email* your-email_confirm] </p>

こういうの、結構使うので助かります!

仕事と夏休み。

IMG_9112
夏休みが始まった、、
だけど、仕事には夏休みはないわけで。

9月に向けての追い込みも始まったから毎日チビに付き合って遊ぶわけにはいかない(T_T)