しゅう【Webコーダー】
のPortfolio Site

Web制作学習で詰まったところ、AI解説などまとめ【JavaScript・PHP(WordPress)関連】

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

この記事は、オンラインプログラミングスクールの「デイトラ」で、Web制作を学習していて、引っかかったところ、詰まったところで調べた、AIの回答などまとめです。

AIの「GeminiAdvance」の解説つけてる投稿は、Xの投稿の下の方にある「gemini」って文字含んでるリンククリックすると、ちょっと動作重いですが、AIの回答・解説に飛べます

全部のネタに見出し付けてあるので、目次から見出しクリックで気になった項目にジャンプできます

思った以上に数が多いので、目次で見てもみにくい??かもです、ごめんなさい。

AIは、Googleの生成AIのGeminiに課金して利用。

デイトラは、メンターさんにディスコードで質問すると、ほんとすぐに、わかりやすい回答をくださります。

ただ、自分の場合は、独り立ちしてサポートがなくなってからのことを考えて、できるだけAIなども駆使して、自分で調べて解決するようにしています。

その、調べて「へ~」と、ためになったAI回答と、自分が学習を進めていて引っかかったところ、Xに投稿したものをまとめておきます。

まとめとかないと、確実に自分でも忘れる、、、

あなたの学習の参考や、忘れかけた知識を再確認するきっかけになる??かも??

この記事では主にJavaScript・PHP(WordPress)関連。

CSS関連は↓

今後も、順次新ネタがあれば、Xに投稿して、この記事にも追加していきます。

AIの回答と、その他小ネタは、それぞれ基本的に、時系列で、上の方に新しい投稿を重ねていってます。

目次

JavaScript

関数宣言 で定義した関数は巻き上げ可能

関数宣言で定義した関数は、関数を定義するよりも上でその関数を使用することができる。

これは、 関数式アロー関数式 ではできないので注意。

それぞれの定義の書き方↓↓

関数宣言
function myFunction() {
  // 処理内容
}
---
関数式
const myFunction = function() {
  // 処理内容
};
---
アロー関数
const myFunction = () => {
  // 処理内容
};
https://twitter.com/shu_web_net/status/1852396673802350610

fadeIn();とかは、displayプロパティを強制的に書き換えてる

https://twitter.com/shu_web_net/status/1839710955636437186?ref_src=twsrc%5Etfw

checkValidity() と validity.valid の違い

https://twitter.com/shu_web_net/status/1838226586434454009?ref_src=twsrc%5Etfw

jQueryの、form.on(“submit”, …

https://twitter.com/shuhobbyblog/status/1838218457965613333

preventDefault();当てる理由

https://twitter.com/shuhobbyblog/status/1837543569235857898

findと、直接クラスで要素取得する違い

https://twitter.com/shuhobbyblog/status/1837541542397092290

formのidで要素取得すると子要素含め全体取得される

https://twitter.com/shuhobbyblog/status/1837530434630308292

jQueryとJavaScriptはそれぞれにメソッド

https://twitter.com/shuhobbyblog/status/1837528020111995255

普通のJavaScriptとjQueryは入れ子など組み合わせ可

https://twitter.com/shuhobbyblog/status/1821832858710802794

jQueryで、functionとアロー関数は挙動が違う場合あり

https://twitter.com/shuhobbyblog/status/1800444468744843415

Gulp

定義してない関数はexportsしちゃいかん

https://twitter.com/shu_web_net/status/1856448006616428925

browserSync.init()で、指定のファイルを開きたいとき

Gulpで、ブラウザ立ち上げるときのファイル指定。

index:””,

を追加。

browserSync.init({
server: {
baseDir: "./public/",
index: "component.html",
...
https://twitter.com/shu_web_net/status/1856447153016844417

下の階層全部watchしたいとき

gulp. watch("./**/*.html", ...);

って書けばOK

ふたつ下の階層も見たいからって、↓

gulp. watch("./**/**/*.html", ...);

って書くとエラーになるので注意!
https://twitter.com/shu_web_net/status/1855670819810312490

ターミナルでの権限確認とディレクトリについて

Windowsなんかの、ファイルの書き込み権限の問題で引っかかって、ターミナルでの操作が受け付けられない場合あり。

あと、npm installなんか実行するとき、ターミナルでどのディレクトリに今いるか確認必須。

違うディレクトリにインストールしても動かんです。

https://twitter.com/shu_web_net/status/1855667819893109223

Gulpで画像コピーするとぶっ壊れる問題

テキストファイルじゃないのに、初期設定だとエンコーディングで文字のように扱われることが原因。

↓の書き方で

srcに{encoding: false}をつけると改善。

参考サイト様↓

(調査メモ)gulp5で画像ファイルが壊れた場合の対処

const assets = () => {
  return src(developDir + 'static/**/*', {encoding: false})
  .pipe(dest('./preview/'))
}
https://twitter.com/shu_web_net/status/1853100967245631906

Gulp設定時の注意

Browserslist の設定は一か所だけに記述。

https://twitter.com/shu_web_net/status/1852771264794083639

PHP(WordPress)関連

スニペットに不必要な改行入ってない??

スニペットに不必要な改行が入ってると、そこでコードの行が別の行として分割されるので、ガッツリエラーになりまする、、、

https://twitter.com/shu_web_net/status/1861416533219746111

PHPで、HTMLのタグのブロック丸ごとecho可能

こんな感じ↓↓

詳しくはX投稿のリンクからGemini解説みてください。

<?php
  $my_block = <<<HTML
    <section class="my-section">
      <h2>見出し</h2>
      <p>これは、変数に格納されたHTMLブロックです。</p>
      <ul>
        <li>項目1</li>
        <li>項目2</li>
        <li>項目3</li>
      </ul>
    </section>
  HTML;

  echo $my_block;
?>
https://twitter.com/shu_web_net/status/1854244116563218868

動的要素読み込みとJavaScript実行のタイミング注意

https://twitter.com/shu_web_net/status/1850074386256310608

HTMLの読み込み完了後にJavaScriptを実行する二つの方法、

「jQuery(document).ready(function () {」と、「<script>タグにdeferという属性を付与」の違い。

Gemini解説抜粋↓↓

どちらもHTMLの読み込み完了後にJavaScriptを実行するという点では同じですが、いくつかの違いがあります。

jQuery(document).ready(function(){ … });

<script defer>

WordPressのテーマのバージョン管理

CSSファイルに↓記述

この Version の値は、WordPress の管理画面の「外観」>「テーマ」で確認することができます。

/*
Theme Name: My Theme
Version: 1.0.0
*/
https://twitter.com/shu_web_net/status/1850071578782073303

サイト名(ルートディレクトリ)に「.」「_」は使わない方が無難

https://twitter.com/shu_web_net/status/1849707436288114947

テンプレートファイル細分化して個別に

基本的にテンプレートファイルにスラッグ(=ハイフンつけてスラッグ名)追加して、個別にスタイル当てたいページを分類。

CSSファイルは、分け方一応調べたけど↓↓、あまり分ける意味ないかも、、、

CSSはstyle.cssにコンパイルして出力する前に、開発段階でdevフォルダの中なんかで、FLOCSSとかGulpとか使ってSassの段階で分割管理できるから。

https://twitter.com/shu_web_net/status/1849491344882008201

WordPressの移管によるユーザー・パスワード上書きについて

プラグインなんかで、WordPressサイトを他から移管して持ってくると、移管先のサイトに登録してあったユーザー情報やパスワードは全部消えて、移管元のデータで丸っと上書きされます。

練習サイトだったからよかったけど、全部消えて焦りました、、、

https://twitter.com/shu_web_net/status/1849482654607093901

WordPressの親子テーマの関係

phpやhtmlのファイルは、親子テーマ両方にあるものは、子テーマのものが優先して表示。

CSSやfunction.phpは、親テーマのものを読み込んだ後に、子テーマのものを追加で読み込み。

https://twitter.com/shu_web_net/status/1849481476385255622

get_queried_object()をsingleページで使う時の注意

get_queried_object()( = ページの情報を取得する関数)は、カスタム投稿のsingleページで動作しない可能性あり。

カスタム投稿が少し特殊な扱い??だから??(ちょっとまだ理解あいまいです)

https://twitter.com/shu_web_net/status/1848813947211952166

termだけでなく、taxonomy指定の重要性

termって何??(Gemini解説)

↑ざっくりいうと、カテゴリーやタグにおける「ニュース」「スポーツ」なんかの個々の項目。

https://twitter.com/shu_web_net/status/1848763004411945381

WordPressでエラーがあったときの条件分岐

is_wp_error();の使い方。

https://twitter.com/shu_web_net/status/1848761433556963330

カテゴリーとタクソノミーの違い

ざっくり抜粋↓↓、詳しくはXの投稿のリンクからGeminiの解説みてください。

タクソノミーは、広い意味での「分類」を指します。カテゴリーもタグも、カスタムタクソノミーも、すべてタクソノミーの一種です。

カテゴリーは、WordPressにデフォルトで用意されているタクソノミーの一つで、投稿を階層的に分類することができます。

一方、タグもWordPressにデフォルトで用意されているタクソノミーの一つですが、こちらは階層構造を持たず、投稿に複数のキーワードを付与するような形で分類します。

https://twitter.com/shu_web_net/status/1848757546653532206

サイドバー実装

dynamic_sidebar(‘sidebar’);の使い方(Gemini解説)

https://twitter.com/shu_web_net/status/1847711140803203362

WordPressdでお問い合わせページの作り方(テンプレートファイルの当て方)

page-contact.phpを作るだけでは反映されず、固定ページに設定して、メニューから追加する必要あり↓↓

固定ページを作成する

メニューに登録する

https://twitter.com/shu_web_net/status/1847698042113442201

ショートコードにおける$attrs変数の自動定義について

WordPressで使うショートコードの中で$attrsっていう変数は自動的に定義されてる。

基本的にショートコードの属性の値が配列として格納されてる。

忘れてると、急に出てきて、どこでこの変数定義したっけ??と惑うことになる、、、

https://twitter.com/shu_web_net/status/1847685262073381289

get_the_category();なんかで、中身が空かどうかの判定

https://twitter.com/shu_web_net/status/1845868808885751834

もうひとつ配列空の時判定についての投稿

https://twitter.com/shu_web_net/status/1848428527273783494

get_the_category();で、配列の0番目を取得する理由

一つの記事に、カテゴリーが複数指定されてるとき、その1番目(だいたいの場合メインとなるカテゴリー?)を取得してタグとかに表示する~、ってこと。

https://twitter.com/shu_web_net/status/1845858989634199940

PHPファイルの自動フォーマット設定

https://twitter.com/shu_web_net/status/1845114885098872990

WordPressの時間・日付取得のタグについて

https://twitter.com/shu_web_net/status/1844771743346692279

HTMLタグの属性の中でもPHPタグを呼び出せるように

https://twitter.com/shu_web_net/status/1842275054010408965

エラーログはVS Codeで開くと見やすい

https://twitter.com/shuhobbyblog/status/1842237187162853511

require と require_once の違い

https://twitter.com/shuhobbyblog/status/1842226311034712372

VS Codeでコードを書くのを楽にする小ネタまとめ記事リンク

この記事では、主にJavaScript・PHP関連の知識の小ネタをまとめてますが、

VS CodeやChromeの開発者ツールを使いながら「コードを書く」ってこと全般に関する小ネタは↓↓の記事にまとめてます。

コーディングや学習の息抜きにでも、どぞ、、、

CSS関連の記事リンク

僕がWeb制作を学んでいる【デイトラ】の紹介記事はこちら

2024年8月時点で、Web制作コースの中級最終課題取り組んでますが、ガチでレベル高いです。

まだ学習優先で、ポートフォリオ作ってないので、説得力ないのが痛い、、、

歯ごたえありすぎて、もし、メンターさんの素早い的確な回答がなく、全部自分で調べてやったとすると、奥歯が砕けるレベル。

実際は、デイトラではディスコードでメンターさんに質問すると、ほんと素早く的確に回答くださいます。

さすがに、このAI回答まとめ記事に、メンターさんに教わったことは書いてません。

自分が受講してるから言えるのですが、本気でWeb関連で仕事できるレベルになりたいなら、おすすめです。