【超基礎というか低レベルでごめん】HTMLやCSSでの今まであった困ったときの原因

このページについて

ブログからHTML、CSS、そしてWordPressをつまづきながら勉強してきた際に、
特に多かった原因をまとめておこうかと思います。

こんなことかよーー!!!
ってのばかりなんですよね。

コーディング全般

全角スペースが入ってる

これは本当によくありますよね?
HTMLとCSSで組み始めて「float」にひーひーしている時に、これが原因で崩れたりしてるんですけど、
難しい「float」に何か原因があるはずだぁ!!!!うわぁぁぁぁ!みたいになってたなぁ・・・

最近では、WordPressの組み込みPHPの改行中に全角スペース混じっていて
「なぜかインデントがはいってしまう〜」なことがありました。
でも、いまでは、あぁどこかに全角入れちゃってるのかな。と思うようになりました。

タグが欠けてる

いろいろ修正しているあいだに、「<」や「>」、「/」を消しちゃったりするんですよねぇ。
それで見た目が大幅にくずれたりして、うぉ〜〜〜もうやる気なくした。
なんて事ありました・・・

WordPress

WordPress投稿編集画面にはコメントはいれてはダメ

先輩から依頼され、HTMLをWordPress化してる時に、3時間ハマりました。
HTMLから本文にあたる部分をよいしょっとコピペしただけなのに、
おもいきりデザインが崩れるんですよ・・・・

はじめは上記の先輩のHTMLにタグの抜けや欠けがあるのかも!
とか思うんですけど、違う。

結局、

</div><!---container-->

みたいにコメントが入ってると、変になるってことでした。
コメントを消したらちゃんと表示されました。

ほんと、なんでこんなことで数時間も・・・
ってことが沢山あったなぁ・・・

if文を近いうちに倒す

if文、間違いなく少しは理解し始めてる!

コピペで何かと問題が解決することが多いので、
ちゃんと記事にして理解してみようとがんばるのはとてもいいかもしれない。

WordPressの勉強を始めて半年。
PHPが本当にわけわからなくて、if文すら理解できなかったけど、
完璧とまでいかなくても、すこしずつ理解してるのを感じます。

それでも、あれ?どう書くんだっけ?という状況が本日既にありました笑

参考にしたCSSデザインのサイトのまとめ

結構な量でおどろき。
プラグインなんかも含めたらもっと多くなる。
いろんな事をやってる(コピペしてる?涙)のだなぁ

日報をカスタム投稿タイプで作成!

会社ではどうもプラグインの「Types」を使うことが多いので、
今回は「Custom Post Type UI」というプラグインを使ってみました!
さらに「Advanced Custom Fields」で簡単に投稿ができるようにしました!

Typesだったら、それ一つで両方できる気がする。

参考にした本・サイト

WordPressのカスタムフィールドを使いやすくするプラグイン「Advanced Custom Fields」

本サイトで参考にしたデザイン&CSSのWEBサイト&本

作りたいものは中身でデザインは簡単に

これでも一応プログラマ志望というか、プログラマ・・・なので、
デザインに時間をかけるよりも、本業の勉強に時間をかけたい。
なので、今は?コピペでもよいからとにかく早くサイトを作りたい!

という思いから作成しました。

下記、まとめです。

ナビゲーションや記事の枠組みデザインCSSはCSSデザイン集から!

こちらには大変お世話になりました。
使える素材が沢山載っています。

背景画像はsubtlepatterns.comより

LIGさんの記事「これが無料!?背景画像のフリー素材配布サイト 14選」で見つけた
Subtle Patternsというサイト。
沢山種類があってオシャレ!

「時計マーク」や「タグアイコン」等アイコンフォントはFont Awesomeから

リンク先を貼れば、ダウンロードしなくても使えるというのがとても便利なFont Awesome


もとはこちらの本で知りました。この本もFont Awesomeを使ってます。というか、この本は初心者には最高にオススメです!

見出しのデザインはCSS見出し ジェネレータ

ググったところ見つけました。
見つけて思ったのが、あ、これ利用してる人多いな・・・他のサイトでちらちら見る。
CSS見出し ジェネレータではリボン風に生成できますが、私はその部分を削除して作ってます。

BIOGRAPHY部分の経歴につかったCSSデザイン

参考になるものばかり載っているWEBクリエイターボックスさんの記事「経歴や会社の沿革ページに!簡単なCSSで実装するタイムライン」を参考にしています。

引用部分に使ったCSSデザイン

CSS Lectureというサイトのblockquote(引用部分)をCSSでデザインするサンプル集から利用させていただきました。
クォーテーションマークの無料ダウンロード探しましたが、どうもリンクが切れているようで、なしで作成しました!

ソースコードの表示にはSyntaxHighlighter

こちらもぐぐって見つけました。結構利用されてる方多いですよね。
利用方法はこちらのサイトで確認しました。

最後に

なんていうか、コピペベースである程度のものは作ることができるようになっていますね。
著作権フリーの同じ写真素材もいろんなサイトでみたり笑

オリジナル力をもっと高めいくのも目標です。

【超基礎編】PHPのif分の書き方を2通り理解する

いまだになじまないPHPのif文

WEBデザインから入り、WordPressに辿り着き、そこからPHPを勉強する人向け?(私がそう)
最初にプログラミング(PHP)から入る方はなんでそこでつまづくの?かもしれないです。
私、本当に、if文で既につまづいております!!

いろいろな書き方に惑わされる

初めて買ったWordPressの本にPHPはでてくるわけですが、
if文の書き方がころころ変わってるわけですよ。

:(コロン)使ってたり、{}(中括弧、ブレースともいうらしい)だったり、;(セミコロン)だったり、
endif;あったりなかったり

は??

(´;ω;`)ウッ…

そこで、もう一度ゆっくり基礎を

PHPの基本的な書き方は2つ

基本構文1

if(条件A){
	条件Aが満たされた場合に実行する処理;
}elseif(条件B){
	条件Bが満たされた場合に実行する処理;
}else{
	条件AもBも満たさない場合に実行する処理;
}

この{}(ブレース)で囲むやり方がピュア?な書き方のようです。

メモ

  • elseif以降は省略可能
  • 処理を複数行書いてもOK

基本構文2

if(条件A):
	条件Aが満たされた場合に実行する処理;
elseif(条件B):
	条件Bが満たされた場合に実行する処理;
else:
	条件AもBも満たさない場合に実行する処理;
endif;

条件の記述の後ろがブレースの変わりに「:(コロン)」を使う。
そして、最後に「endif;(←セミコロン)」がつく。

本当にこれだけ。
なのに、なんでわざわざ二通りの書き方をするのがワケがわからなかった。

で、なんでそんな事をするのかというと、

HTMLタグを直接記述する場合に構造が見やすくなる。

<?php if(条件A): ?>
	<h3>見出しa</h3>
<?php elseif(条件B): ?>
	<h3>見出しb</h3>
<?php else: ?>
	<h3>見出しc</h3>
<?php endif; ?>

基本構文1使うと

<?php if(条件A){ ?>
	<h3>見出しa</h3>
<?php }elseif(条件B){ ?>
	<h3>見出しb</h3>
<?php }else{ ?>
	<h3>見出しc</h3>
<?php } ?>

こんな感じかしら?あってる??(;´∀`)

私の解釈ですが、「コロン」は「さーて行う処理をこれから書くよっ!」で
「セミコロン」を使うものは「はい今処理書き込ましたよ!」で「endif;」は「はいっ!これで終了!」と認識しました。
そして、セミコロンもコロンもPHPを使うときであって、HTMLの時の処理に「;」はつけなくてよい。

WordPress始めて半年くらいたつけれど、PHPはまだまだすっきりわかっていない・・・
それでも、参考にした本は今読み返すと、わかるようになった部分が増えてきた!

参考にした本

予想以上に時間がかかりますな、勉強って。

時系列、沿革に使えそうなCSSをつかってBIOGRAPHY作成

予定どおり、BIOGRAPHYをつくろうとなんかよさげなCSSデザインを探しておりました。
ふと、昔見ていたWEBクリエイターボックスのデザインを思い出して活用させていただきました!

どうも、twentytwelveの既存CSSを引きずる所があるせいか、列がそろわず少々苦戦・・・
CSSって簡単なようで、よくわからないんだよなぁ・・・

WordPress、Typesをつかった時間表記確認

これまたif分でつまずいてしまって時間がかかりました。お、おぅ。
実はいまでにif分よくわかってないんですよねぇ。。。はぁ。

先月教えてもらった分をサイトに反映

ブログにコードを表示するツール探し→「SyntaxHighlighter」

みつかったのが「SyntaxHighlighter」
WordPressのプラグインであったので、早速インストール。
タグをプラグインのAddQuicktagで追加作成。

引用のデザイン探し

いろいろググってみたものの、クォーテーションマークのフリー画像が見つからず・・・
もういーやっ!と思って、WEBクリエイターボックスさんの記事から頂きました。

カスタムフィールドのエスケープ方法の理解

上記、2つはこの記事を書くために必要で追加されてしまった作業でした。
メインはもちろんこちら。

教えてもらった事をそのままにしない為に作ったブログサイト。
普段はコピペでその場しのぎでなんとか、だけれど、
さすがに記事を書いてみようとすると、わからない事が多数浮きあげる・・・
まだまだ、細かいところまで覚えようとすると疲れるので(言い訳)
今日はここまで。

WordPressでTypesカスタムフィールドを使った日付の表示方法

はじめに

お仕事でシングルテンプレート作成中につまづきました。
ちなみにやりたいことは、カスタムフィールドを簡単に作ることができるプラグイン「Types」で作った
カスタムフィールドの日付を表示したい。

例:開始日:2014/05/21(date_s) ~ 終了日:2014/8/31(date_e)
 ↑日付部分をカスタムフィールド(カッコ内がスラグ名)で作成中

日付がうまく表示できない

そこでせんぱーーい!!!

カスタムフィールドの日付表示方法

1970-01-01 00:00:00からの秒数を表す値 = Timestamp値が入ってます

そもそも、Typesで作成したカスタムフィールドの日付にはTimestamp値が入っているらしい。

(デジタル・)タイムスタンプってなんだ?

コンピュータやデジタルカメラ等の電子機器にて記録されるタイムスタンプ(他との区別のため「デジタル・タイムスタンプ」 英: Digital timestampとも呼ばれる[2]。)は出来事(イベント)が発生した時刻そのものを指すのではなく、コンピュータにイベントが記録された時刻を指す。多くの場合、その違いは重要ではない。タイムスタンプによりイベントが記録された時刻(例: ログ書き込み時刻)と記録されたイベントの発生時刻の差は極めて0に近づくべきである。

中略

タイムスタンプは次の意味でも使われる。
UNIX時間。1970年1月1日00:00:00 UTCからの経過秒数。プログラミングにおいてはこちらをさすことが多い。

タイムスタンプ – Wikipedia

ふむふむ。

なので基本としては、以下でよい。(Typsで作成したフィールドは先頭に「wpcf-」をつける)

$date_s = get_post_meta($post->ID, 'wpcf-date_s', true);
$start = date('Y年m月d日', $date_s);
echo $start;

ですが、

PHPはわりと最近のアップデートで「タイムゾーンを明示的に設定しておかないといけません」という仕様になりました。

とのことで、以下が正解になります。

date_default_timezone_set('Asia/Tokyo');
$date_s = get_post_meta($post->ID, 'wpcf-date_s', true);
$start = date('Y年m月d日', $date_s);
echo $start;

なるほど。

そして、そのままそれを私は利用したかというと、しなかったんです←オイッ
ググってでてきた「Types Fields API」の「types_render_field」を利用したんです。

ところが・・・
時刻がずれる可能性もあるかも?というこで利用をやめました。
そして続きが。

Warning: date() expects parameter 2 to be long, string given

こんな警告がでたとのこと。
和訳:「date()関数の第2引数はlong(長精度整数型)が求められていますが、string(文字列型)が渡されました」

2行目で、wpcf-date_sカスタムフィールドから値を取得した時に、値が入力されていれば日付を表す数値が入っています。
が、「なにも入力されていない」という場合もあり得るので、3行目でそのままdate()に渡してしまうと、「空の文字列」が渡されることになって先の警告が出るとのこと。

プログラミングでは、「例外処理」といって、
「入力してくれることを期待しているけれど、入力してくれないかもしれない」とか、
「数値を入れてくれるはずだけど、文字が入っているかもしれない」とか、
期待していないデータが渡ってくるケースのことも考える必要があります。

一般的に、期間を表すときは、

・「$date_s」に値が入っていなかったら、日付は空欄にする。
・調査期間の開始日がなくて終了日だけ入っている場合も空欄にする。
・開始日〜終了日の「〜」だけ表示されてたらおかしいので、開始日がなければ「〜」も表示しない。

といったルールが多いそうです。
ということで、以下になりました。

$date_s = get_post_meta($post->ID, 'wpcf-date_s', true);
$date_e = get_post_meta($post->ID, 'wpcf-date_e', true);

if ($date_s) {
	$start = date("Y年m月d日 h:i:s", $date_s);
	$end = date("Y年m月d日 h:i:s", $date_e);
	echo $start . '〜' . $end;
}

へぇ〜〜〜!!なんか、すごいなぁ。

参考にしたサイト

「Types」プラグインが便利(2)カスタムフィールド – IMAGINATION DESIGN

ひとまず本サイトデザイン完了〜

1から組み立てるのではなく、既存テーマの「twenty tweleve」を利用して作ってみた

いままで、WordPressレッスンブック HTML5&CSS準拠を見ながら、
1からサイトを作っていたので、今回は違った勉強として、既存のテーマをいじることに。

コピペベースで作成

コピペベースで作成

いままで、2つWordPressで個人サイトを作ったので、
結構慣れてきてはいるけど、所詮貼り付け作業でなんとかしてる感じなんですよね・・・

それでも、「いじって変える」ことができるようになったのは成長したかなと思う。

CODEPEN代替については、一旦保留することに

プライベート機能を使う為だけに、年間$75は高いよ〜

私が残して置きたかったのはコレ↓

このサイトのナビゲーションはまんまここからです(汗)

見出しのデザインや、記事を囲むボックスのデザインが沢山あるので重宝したのです。
この本は図書館で借りたものなので、コードをCODEPENに残して、
うっしっし
って思ったけれど、有料会員になるより、この本を買ってしまった方が良さそうです笑

本WEBサイト制作開始

本日、WEBサイト作成開始。

ドメイン取得して、
サーバにWordPressいれて、とりあえずここまで。

内容もでない状態

内容もでない状態

CODEPENに気に入ったCSSのデザイン登録しておこうと思ったら、
非公開設定は有料らしい・・・
人のコードなので、私が公開するわけにはいかないわ・・・

自己サイト作りに利用中。お名前ドットコム

最近、勉強がてらWEBサイト作成していて、

そのためにドメインを3個程取りました。

またもうひとつ作ることになるので、自己アフィリエイトもできるバナーを貼ります(笑)


サーバーはロリポップなので、ムームドメインの方が

提携してるので簡単そうなんだけど、お名前.comのほうがどうも安い。

ここでドメインとってるせいで、

いつもここのAKBの広告が至るところで表示されるよ。

なので、私は貼らないぞ

 

ついに自己サイトを作ったよ。ヤフーブログ開設から7年!?

ついに自己サイトオープンしましたよ。

今までの記事はブログからひっぱってきたもの。

(非公開にせざるをえない恥ずかしい記事だらけでした・・・)

 

そもそもブログを始めたきっかけ

ヤフーブログ当時のTOP

大学時代に、ゆくゆくは自分で会社、もしくはお店を作りたい。
そのためには、自分でWEBサイトを作れるようになっておきたい。
というものでした。

しかしまぁ、何がなんだかさっぱりわからないわけですね。
そこで、そのあたりに詳しい友達に相談したら
ホームページを簡単に利用できるようにしたのが「ブログ」だよ。
と言われたのでした。

 

どんな無料ブログを利用したか?

そんなわけで、当時(今も?)有名だったYahooブログを開設。

ブログの友達も沢山できました。

就職活動時も沢山支えていただきました。

オフ会にも行き、今でもブログの枠を越えてお付き合いがあります。

 

さてさて、時代はamebaブログ、通称アメブロが流行りだしました。

かわいい女性はみんなそこ、

なので私も、別ネームで開設したなぁ・・・

(今、それ思い出しましたわ。そのうち整理します)

 

ですが、当時のブログはFC2ブログに2010年引っ越ししました。

理由は、とにかくyahooブログはやめたい。でした笑

 

ブログ引っ越しのデメリット

他サイトのブログだと、ブロ友さん同士の交流が機能の面で面倒になるんですよね。

なので、FC2への引っ越しとともに、ブロ友さんとのおつきあいはブログ上で無くなりました。

ただ、私自身がブロ友さんのブログに訪問できなくなっていたので、

大した問題ではなくなっていましたが。

 

そして、2014年、FC2からはてなブログへ引っ越しました。

理由は、いろいろなブログサービスを一度は利用し経験してみたかったので。

いやぁ〜、はてなは個人的に一番使いにくかったですね笑

画像サイズの変更できなーい!と。

 

ついに自己サイトオープン

はてなブログが最高に使いにくく、

もともと記事の更新頻度が落ちてたいた私にはそれはかなり響いてました笑

 

ですが、2014年夏、地味に行っている音楽活動で取材を受ける機会がありました。

そこで、一念発起!

ついに自分のサイトを作る気になりました!!

 

 

自己サイトを作れるようになりたい。

ヤフーブログ開設日が2007年4月24日。

あれから7年がたったんですね。

 

まだまだ素人なできかもですが、少しは成長したかな。

 

※ヤフーブログの記事はこの後削除しました。

ヤフーブログさんいままでありがとうございました!

 

 

セキュリティ:カスタムフィールドのデータをエスケープする

雑談

カスタムフィールドを使った最初のお仕事としてWordPressのシングルテンプレートを作成しました。
そのコードに先輩から暖かい丁寧な添削が入ります。
理解するのに恐ろしい時間かかるけど、一つ一つ理解していかねば。
更新日時は教えてもらった日に設定

カスタムフィールドのデータをエスケープ

運用担当者がヘンなデータを入れた場合に
表示が崩れたり脆弱性ができたら大変

ということで、

<?php echo get_post_meta(); ?>

に一手間加えてあげるそうです。

esc_html()を加えるだけっ!

<?php echo esc_html(get_post_meta()); ?>

エスケープってそもそもなんなの?

マークアップ言語やプログラミング言語で文字列を扱う際に、その言語の文法や処理系にとって特別な意味や機能を持つ文字や記号(およびその並び)を、一定の規則に従って別の文字列に置き換えること。

例えば、HTMLはタグの記述に「<」「>」という記号を用いるため、この記号そのものを文字として表示することは本来できない。このとき、「<」「>」という特殊な表記法に置き換えることで、それぞれ「<」「>」と表示することができる。このような置き換え操作・処理のことをエスケープ処理という。

エスケープ処理とは – IT用語辞典 e-Words

あ、そういうことだったのか。
「<」を「<」じゃなくするんだな。うん。

カスタムフィールドの数が多い時の処理にfunction.phpに関数作成

さて、さらに教わった事。
フィールド数が多いと毎回書かなきゃいけなくて面倒。そのために、function.phpにひとつ関数を作ってあげると便利らしい。
(今回は「cf」なんだろう)

function cf($post_id, $fieldname, $single) {
    $cf = get_post_meta($post_id, $fieldname, $single);
    if ($single) {
        echo esc_html($cf);
    } else {
        return $cf;
    }
}

とのこと。
引数はget_post_metaと同じにして、
第三引数の「$single」がtrueだった場合は、取得したフィールドの内容をエスケープ処理(esc_html())してからechoする。
$singleがfalseの場合は、get_post_metaと同じ動きをする。(つまり、$single = true以外で使っても意味がない。)

とのこと。

<?php echo get_post_meta($post->ID, 'fieldname', true); ?>

にしたところは、

<?php cf($post->id, 'fieldname', true); ?>

に変更すればOK!

「$single」がtrueだった場合にしたのはなぜだろう?
と疑問でしたが、

$singleは複数の値を入れる事ができ、そのときsingleにfalseを指定すると、戻り値を次のような配列で受けとるらしい。

Array
{
   [0] => これは値1です。
      [1] => これは値2です。
}

だから、falseの時にエスケープしちゃうとちゃんとひっぱってこれないよってことなのかしら?
うーんよくわからない。とりあえず、配列がある時はまたの機会に考えよう。

その他のエスケープ処理

他にもまだエスケープ処理する関数があるらしい。
ざっくり書くと

esc_attr()

HTMLの属性値として出力するとき
※現時点でesc_htmlと同じ処理をするらしい。将来はわからないから今から適切に書きましょうとのこと。

esc_url()

URLとして適切でない文字を除去

参考にした図書

ちなみに↓は全然基礎じゃないと思う(・∀・)

2月の映画まとめ

よかった。
日本で、国の借金がヤバイだとか、TPPがなんだのだとか、わけのわからないことが起きていたので勉強を兼ねて。
少し経済に興味を持ち始めた人にはとても興味深いものではないかと思う。
IMFについても、単純に財政を助けてくれるいい所、なんて思っていた自分に新たな知識が増えてよかった。
sayapochiの本棚 – 2013年02月 (2作品)
モテキDVD-BOX (5枚組)
ジャマイカ楽園の真実 LIFE&DEBT [DVD]


powered by booklog