プログラミング日記【10ヶ月目第4週】デイトラ40代アラフォー初心者

アフィリエイト広告を利用しています

2024/8/19(月)プログラミング日記

【Web制作コース 289日目】

作業:3.5時間

作業内容

  1. 【上級編】DAY23-24 Tips7
P上級編を進めるだけ進める
DDAY23-24 【カスタム3兄弟を使いこなそう① – カスタム投稿・カスタムタクソノミー編】
 Tips7. 演習課題:「制作ジャンル」タクソノミーのテンプレートも完成させよう
Ctaxonomy-genre.phpテンプレートはすぐに作れた
けど、開いているタクソノミーのラベルがハイライト実装で苦戦
なんとなく答えが見えてきた、というより答えは参考記事でわかる
理解が追いつかない
なぜ esc つけるんだ=セキュリティ向上、つけなくても実装できるのか?
var_dump 使ってみないといけない
Perplexityにコードの相談したけどやっぱり生成はいまいち
コードの意味を聞くには良い
get_queried_object()、is-activeクラス を使うのがどこかで迷ってるのか🤔
PHP構文を正しくするのが難しい、何のコードをいれるのか、意味はわかってきた
👆ここまで朝の作業
ここから夜の作業後👇
参考記事で整理しながら実装完了!
ちょっとだけ分かったような気がする、ハイライト実装
👉難しいけど楽しくワクワクする😊
ADAY23-24完了!
Screenshot

2024/8/20(火)プログラミング日記

【Web制作コース 290日目】

作業:2.5時間

作業内容

  1. 【上級編】DAY23-24 Tips8 完了!
  2. 【上級編】DAY25-26 Tips1 完了!
P上級編を進めるだけ進める
DDAY23-24 【カスタム3兄弟を使いこなそう① – カスタム投稿・カスタムタクソノミー編】完了
 Tips8 演習課題2:single-work.phpに関連記事を表示させよう
DAY25-26 カスタム3兄弟を使いこなそう② – カスタムフィールド編
 Tips1. カスタムフィールドとは
Cできたっぽい👇
single.phpの関連記事(テンプレートphp)を参考にしながらできた
たまたま WP_Query で調べながらテンプレート実装してたからできた
だけど回答例がないとけっこうできたのか不安だ
Perplexityにきいたら基本的に正しい構文になっているらしい
メンターに質問して正しいコード化確認してみよう
メンターの回答は👇の吹き出し参照
ADAY25-26完了!
bakushin
bakushin

メターからの回答👉「はい!問題ないですよ😊よくできています!」

👉良かった〜〜!

Screenshot

カスタムフィールドとは👇

  • WordPress制作で頻出機能
  • オリジナルの入力フォーム(WordPressの管理画面から追加)
  • 入力項目をあらかじめお客さんに指定してあげる
  • WordPressに不慣れなお客さんも簡単に入力できる
  • オーダーメイド形式でホームページを作るとき必ず使う技術

2024/8/21(水)プログラミング日記

【Web制作コース 291日目】

作業:3.5時間

作業内容

  1. 【上級編】DAY25-26 完了!
P上級編を進めるだけ進める
DDAY25-26 【カスタム3兄弟を使いこなそう② – カスタムフィールド編】完了!
 Tips2 Advanced Custom Fieldsのインストール
 Tips3 ACFでカスタムフィールド「制作実績」を作ってみよう
 Tips4 カスタムフィールドにデータ入力してみよう
 Tips5 カスタムフィールドに入力された値を表示してみよう
 Tips6 メニューに「制作実績」を追加
 Tips7 まとめ:カスタム3兄弟はWP開発にマスト!
 Tips8 演習課題:archive-work.phpとtaxonomy-genre.phpの抜粋に「案件概要」のカスタムフィールドを出力させてみよう
CAdvanced Custom Fields(プラグイン)でカスタムフィールドを設定
これはたしかに便利だ😊
カスタムフィールドの設定はカスタム投稿とカスタムタクソノミーより扱いやすい感じ
PHP構文も少なくAdvanced Custom Fields(プラグイン)の便利さを実感できた
さすがに200万以上もダウンロードされているだけある
演習課題で新たにAdvanced Custom Fields(プラグイン)でフィールドグループ追加するのかと20分ほど苦戦
👉なんのことはないすでに最初のフィールドグループで設定完了してた
👉archive-work.phpとtaxonomy-genre.phpにプラグインのテンプレートとPHPのmb_substr()関数を組み合わせるだけだった😊
👉本当、便利!
ADAY27完了!
Screenshot

カスタムフィールドで40文字以上は非表示にする設定で参考した記事👇

[WP]カスタムフィールド内のテキストを文字数制限で表示する方法
WordPreesのカスタムフィールドに登録されたテキストを、例えば「100文字で切って表示したい」という場合に便利なカスタマイズを紹介させていただきます。 また、今回はAdvanced Custom Fieldプラグインを使う場合について
bakushin
bakushin

メンターに質問した内容👇

Screenshot

Advanced Custom Fields(通称ACF)」👉制作の現場でも非常によく使われている

プラグインでフィールドグループ設定👉VSCode Codeで single-work.php の該当部分を編集👉プラグインのテンプレートに修正

👇Advanced Custom Fields の Code Examples

ACF | Code Examples
Display a field Retrieving a field as a variable

フィールドを表示させるだけなら👇でOK

<?php the_field('company'); ?></td>

会社名のフィールドが未記入ならブラウザ表示しない設定👇(if endif)

<?php if( get_field ('company')): ?>
<tr>
<th>会社名</th>
<td><?php the_field('company'); ?></td>
</tr>
<?php endif; ?>

2024/8/22(木)プログラミング日記

【Web制作コース 292日目】

作業:3.5時間

作業内容

  1. 【上級編】DAY27 完了!
P上級編を進めるだけ進める
DDAY27 【開発したWordPressサイトを本番環境に移行する】完了!
 Tips1 WordPressテーマの移行に必要なものとは?
 Tips2 サーバーにWordPressをインストールする
 Tips3 WordPressとデータベースの関係性と編集手順
 Tips4 サイト移行用プラグイン『All-in-One WP Migration』をインストールする
 Tips5 演習課題:ユーザーのログインID・パスワード・メールアドレスをphpMyAdminを使って変更する
Cローカル環境からサーバー環境へWordPressサイトの移行完了!
『All-in-One WP Migration』すごすぎる!感動レベルの簡単さ😳
ハプニング① ハッシュ化したパスワードが無効😱
phpMyAdmin で SQL からWordPressのID、パスワード、メールアドレスを更新
パスワードについては更新できているのに更新後のパスワードでログインできない
ハッシュ化したけどこれが原因?ハッシュ化した使用した関数は MD5
メンターにも質問👉けっきょく手順も間違ってない
SQLで更新👉wp_usersテーブルの「編集ボタン」からパスワード更新
「編集ボタン」クリックすると関数でMD5も選択できた
👉WordPressにログインもできたのでパスワード更新も完了
SQLではなぜ反映しないかはモヤモヤは残った😅
ハプニング② 投稿記事が表示されない😱
サーバーへ移行したWordPressの投稿記事(single.php)が404で表示される
投稿一覧には表示されるのになぜ、記事の中身がない😱
Perplexityに質問したら、一発で解決した😅
パーマリンクの設定を何も変えずに、更新ボタンを押したら問題は解決した!
これで、完全にサーバーへWordPressのサイトの移行が完了!
ADAY28完了!
bakushin
bakushin

ハプニングもすべて解決したサーバー移行後のWordPressサイト

ハプニング①

ハプニング②

2024/8/23(金)プログラミング日記

【Web制作コース 293日目】

作業:2.5時間

作業内容

  1. 【上級編】DAY28 完了!
  2. 【上級編】DAY29 Tips1
P上級編を進めるだけ進める
DDAY28 【メタ要素・ソーシャルシェア・XMLサイトマップを設定する】完了!
 Tips1 プラグイン『SEO SIMPLE PACK』をインストールする
 Tips2 プラグイン『XML Sitemaps』でsitemap.xmlを作成
 Tips3 クローラーに更新を通知するプラグイン『WebSub (FKA. PubSubHubbub)』をインストールする
 Tips4 リンクが切れたURLや画像がないかを検知する
DAY29 【サイトの表示速度を上げよう】
 Tips1 これ一つで最適化がほぼ完了!Autoptimizeをインストールしよう
CDAY28
WordPressサイトの公開後のプラグイン設定
SEO対策が内容になってる
どのプラグインもどういう役割を持っているのかわかるので??とならない
WordPressでブログをしてきたからだろう
1点だけ❓となったのが、header.php 更新後にどうやってサーバーに反映させるか
保守上危険なのでサーバーで直接編集しない👉じゃあどうやって編集するの?🤔
Perplexityに質問したら、FTPらしい、そりゃそっか!
Filezilla でローカルからサーバーへ header.php を上書き👍
DAY29
上級編で一番勉強したかった【サイトの表示速度を上げる】!
👉【Autoptimize】有効化の段階で「プラグインがメインなの😱」
👉サイト高速化はコードから学びたい😱
👉どうやらコードでの高速化を学ぶには参考サイトで自学っぽい
👉実務的に高速化よりはサイト制作に軸があるからだろうから講座の構成には納得はできる
Autoptimize で何をしているのかはわかってよかった
JavaScript、CSSのファイルの圧縮👉空白や不要な改行を削除しているだけ
レンダリングブロック解消👉JavaScriptファイルを非同期で読み込む
画像の遅延読み込み👉
loading=”lazy” 属性を付与する方法
JavaScriptで制御する方法(AutoptimizeではJavaScriptで制御する方法採用)
この loading=”lazy”を学びたい!
将来的にはloading=”lazy”が主流になりそう
ADAY29完了!

2024/8/24(土)プログラミング日記

【Web制作コース 294日目】

作業:4時間

作業内容

  1. 【上級編】DAY29 完了!
  2. 【上級編】DAY30 完了!
P上級編を進めるだけ進める
DDAY29 【サイトの表示速度を上げよう】
 Tips2 キャッシュの概念とWP Super Cacheの導入
 Tips3 画像を圧縮して軽くする
 Tips4 サイトの表示速度を確認できるツール
 Tips5 まとめ:簡単にできる表示速度対策はしておこう
DAY30 【セキュリティ対策をしよう】
 Tips1 バックアップを取ろう(UpdraftPlusのインストール)
 Tips2 自動でマルウェアや不審なログインを検知してくれる「Wordfence」のインストール
 Tips3 ログインURLの変更とロボットをブロックする「SiteGuard」を入れよう
 Tips4 パスワードは強固に+パスワード管理ツールを使おう
 Tips5 スパムをブロックする「reCAPTCHA」を使おう
 Tips6 WordPress制作ではセキュリティの意識を!
Cサイト公開後のプラグインはほぼ使用したことがあった
ブログをやっていたので慣れているプラグインが多くこの点はすっと完了できた
Wordfenceなど実際はどんなプラグインかわからないところを知ることができたのは助かった
DAY29は全体的に重要なパートだと感じた
キャッシュの理解、プラグインの使用方法は理解が不十分とも思う
卒業制作課題でもプラグインの理解度が試されてくると思う
卒業制作課題を作りながらキャッシュの理解を深めていく
ADAY 31- 44 卒業制作課題 完了!
bakushin
bakushin

DAY29はキャッシュなど本当に重要だと思いました!

メモです👇

キャッシュにはブラウザ側とサーバー側の大きくは2種類ある

Autoptimizeがサーバー側のキャッシュを保存している

Autoptimize👉サーバー(JavaScriptやCSS)のキャッシュと削除
WP Super Cache👉ページのキャッシュとキャッシュ削除

WP Super Cache👇

  • キャッシング利用 (推奨)をONにするだけ
  • 【抑えておくこと】キャッシュの削除はWordPress管理ページ上部「キャッシュを削除」かWP Super Cache管理ページから削除
  • お問い合わせ系のプラグインと相性悪いのでお問い合わせページのURLを除外しておく「高度な設定 除外する URL 文字列にお問い合わせページのスラッグを登録する」(お問い合わせ内容を送信できなくなる)
  • WP Super Cacheはけっこう相性の悪いプラグインが多い、不具合が起きたらまずはWP Super Cacheを無効化してみると解決することが多い
  • JavaScriptやCSSなどで重い処理をする場合WP Super Cacheは強力なツールとなる
bakushin
bakushin

更新が反映されない問題の対処方法

  • ブラウザキャッシュを削除してもらう(※クライアント側)
  • スーパーリロード(⌘⇧R)で更新してもらう(※クライアント側)
  • クエリパラメーターを変更する(※自分たち側)
    サーバーキャッシュの場合
  • サーバーキャッシュを削除する(※自分たち側)

セキュリティ👉お客さんが配慮しきれない部分👉制作者側でしっかりと対応する👉そういう姿勢がお客さんの信頼にも繋がる!

キャッシュ削除してない👉サイト更新してもクライアント側で「反映されてしない」と言われる時がある
まずは自分たち側でできる対処を行う👉クライアントには極力負担をかけないようにする

2024/8/25(日)プログラミング日記

【Web制作コース 295日目】

作業:6.5時間

作業内容

  1. 【上級編】DAY 31~44 卒業制作課題
  2. 【上級編】DAY25-27 Tips3
  3. 【上級編】DAY23 Tips-1-2
P上級編を進めるだけ進める
D【上級編】DAY 31~44 卒業制作課題
 Tips1 卒業制作課題の進め方
 Tips2 CSS設計から学びたい方へ
👇Tips2 CSS設計から学びたい方へ を進めるために修了必要なDAY
【上級編】DAY25【CSS設計①:CSSの問題とCSS設計手法】
 Tips1 カスケーディングのおさらい
 Tips2 自由度の高いCSS
 Tips3 CSS設計が目指すもの
 Tips4 様々なCSS設計手法
 Tips5 コンポーネントとレイヤー
【上級編】DAY26【 CSS設計②:コンポーネントを作ろう】
 Tips1 再利用しやすくするためのポイント
 Tips2 BEMでコンポーネントを作ろう
 Tips3 コンポーネントの大きさの単位
 Tips4 BEMとコンポーネントの関係
 Tips5 クラス名の考え方
【上級編】DAY27【CSS設計③:CSS設計を実際に使おう】
 Tips1 FLOCSSの設計手法
 Tips2 クリニックサイトでのFLOCSSの例
 Tips3 実践:FLOCSSを使って1からサイトを作ってみよう
  プロジェクトフォルダの用意
  Sassの階層とコンパイル環境の整備
  変数の定義
【上級編】DAY23【Gulpを使ってみよう】
 Tips1 Node.jsのインストールからGulpの動作確認まで
 Tips2 Sassをコンパイルする
C卒業制作課題をいざ着手!
と思ってたけどその前になかなかにボリュームのある事前学習が必要とわかった
FLOCSSでやっとWordPressにどうやってCSSを設計するか学習できた
WordPressのCSSってどうやって当てるの?🤔って上級編進めながら思ってた
卒業制作課題まで触れられないし、上級編のWordPressサイト(TF30)のCSSって中級編と全く違う感じだったから
FLOCSSで作成することがわかればなんとか卒業制作課題を作成できそうな気がしてきた
Node.js って名前だけみたことあるけど Gulpって何?
で、Gulp便利じゃん❗Live Sass Compiler みたいな感じ(Gulpとどう違うんだ?👉AIに聞こう)
これはまだ1-2日は卒業制作課題に着手できそうにない!
でも、どの卒業制作課題を作成するかだけは決めた😊
ADAY 31~44 卒業制作課題 に着手する!
Screenshot

実務編 DAY25

カスケーティング

カスケード、詳細度、継承 - ウェブ開発を学ぶ | MDN
このレッスンの目的は、CSS の最も基本的な概念であるカスケード、詳細度、継承について理解を深めることです。これらの概念は、CSS を HTML に適用する方法とスタイル宣言の間の競合を解決する方法を制御するものです。

CSS Architecture — Philip Walton
To many Web developers, being good at CSS means you can take a visual mock-up and replicate it perfectly in code. You do...

予測しやすい

  • 予測可能なCSSとは、ルールが期待通りに動作する
  • ルールを追加したり更新したりしても、意図しない部分に影響を与えない
  • 滅多に変更しない小規模なサイトではそれほど重要ではない
  • 何十、何百ページもある大規模なサイトでは、予測可能なCSSは必須

再利用しやすい

  • CSSのルールは、既に解決したパターンや問題を再コード化しない
  • 既存のパーツから新しいコンポーネントを素早く構築できるよう、抽象的かつ非連続的であるべき

保守しやすい

  • サイトに新しいコンポーネントや機能を追加、更新、配置変更する必要がある場合、既存のCSSをリファクタリングする必要はない
  • コンポーネントXをページに追加しても、その存在だけでコンポーネントYが壊れるのは❌

拡張しやすい

  • サイトの規模や複雑さが増すと、通常、より多くの開発者がメンテナンスに必要
  • スケーラブルCSSは、一人でも大規模なエンジニアリングチームでも簡単に管理できる
  • サイトのCSSアーキテクチャは、膨大な学習曲線を必要としない
  • 簡単にアプローチできる
  • 現在、CSSに触れているのがあなただけでも、今後もずっとそうでとは言えない

FLOCSS

  • FLOCSS広く使われており理解しやすい(日本人が開発したもの)まずはFLOCSSでCSS設計に慣れ始めると良い
  • OOCSS、BEM、SMACSSのいいところどりしている感じのもの
  • とくにコンポーネントが重要

👇このFLOCSSの開発者のREADMEを参照

GitHub - hiloki/flocss: CSS organization methodology.
CSS organization methodology. . Contribute to hiloki/flocss development by creating an account on GitHub.

コンポーネントを押さえることがCSSの第一歩といえる

実務編 DAY26 サマリー

コンポーネント

  • Web制作はコンポーネント単位での制作が必須
  • CSS設計ではコンポーネントが作れることが前提
  • コンポーネントはBEMの概念を用いると作りやすくなる
  • BEMはCSS設計の中でもかなりメジャー、多くのWeb制作の現場で使われている
  • コンポーネントは使いまわしできることを前提に作られる
  • コンポーネントに width height を固定数値で指定すると文字数が増えたときに表示が崩れる
  • 余白( marginなど)についても同じ(使われる先のElementに余白はつける)

コンポーネントの大事なPOINT3点

  1. 文字数が変わる可能性を考慮する
  2. 使われる場所が変わることを考慮する
  3. 要素セレクタが変わることを考慮する

BLOCK – ELEMENT(BLOCK があって ELEMENTがある)

bakushin
bakushin

コンポーネントの集合という理解で、ここ👇を意識していくとHTMLも書きやすくなる

Atomic Design Methodology | Atomic Design by Brad Frost
Learn how to create and maintain digital design systems, allowing your team to roll out higher quality, more consistent ...

コンポーネントが集合した大きいコンポーネント(ATOMS以降の集合体)にも余白は設定しない

実務編 DAY27 サマリー

Foundation 👉10pointを超えないように作成すること

Layout 👉インナー幅など、ヘッダオーはこの変に置きますよとか

Component👉ボタンなど

bakushin
bakushin

コンポーネントは一つのブロックに対して一つのコンポーネントファイルを作ると良い理由です👇

  • 1ファイル内の記述量が減る
  • どのファイルに何を書いているのかわかりやすい
  • class名が被ることを防げる

project 👉ファイルの数がかなり多くなる

Utility 👉hiddec-spなどヘルパークラスを記述する(レイヤーの中で最後に読み込まれるので、最終的にどのレイヤーに対しても上書きした状態になる)

global 👉function.scss、mixins.scssなどをまとめる


演習👇

FLOCSSの読み込みは、@import ではなく @useに変更されている

_index.scss _ を入れることで出力させない設定にする(コンパイルしたときに出力されるファイル👉 _index.scssではなくstyle.scssという設定になる)

① node.jsインストール

② package.json作成

npm init -y  👈ターミナルに入力 ( -y は質問にすべてYES回答するという意味)

③ package-look.json作成

npm install --save-dev gulp gulp-sass sass gulp-postcss autoprefixer css-declaration-sorter gulp-merge-media-queries
(👆ターミナルに入力)

gulpのwatchを使ってsassをstyle.cssにコンパイルする

globalフォルダの_index.scssで他のファイルを読み込むときは @forward(@useではない)

@use “../global/” as global;

👆 as global でglobal という名前に定義する

コメント

タイトルとURLをコピーしました