WordPress – 開発の基本

WordPress の開発についての基本事項をまとめています。

ファイル構成

「ページテンプレート」

表示の仕方に対応して、それぞれ専用のページ用テンプレートが用意されています。

  • home.php : [設定] – [表示設定] で、フロントページの設定が [最新の投稿] になっている場合に表示されるページです。
  • category.php : カテゴリーに所属する記事を表示するページです。
  • date.php : 日付ごとに投稿された記事を表示するページです。
  • page.php : 固定ページ表示用です。
  • single.php : 個別記事ページ表示用です。
  • search.php: 検索結果ページ表示用です。
  • index.php : 上記の各ページが存在しない時に使用されます。

「パーツテンプレート」

また、各ページで共通に使用する部分はパーツテンプレートとして分離させます。

  • header.php : ヘッダーエリアを記述します。get_header() テンプレートタグで読み込みます。
  • footer.php : フッターエリアを記述します。get_footer() テンプレートタグで読み込みます。
  • sidebar.php

標準で用意されていないパーツテンプレートはカスタムテンプレートとして任意の名前で用意します。

「その他」

上記のほかに以下のファイルがあります。

  • functions.php : カスタムヘッダーやカスタムメニューの機能を追加します。
  • style.ccs : スタイルシートです。

すべてのファイルの保存形式は UTF-8 (BOM 無し) を推奨します。

ページ表示の基準

特に指定がなければ、WordPress のサイトにアクセスすると、functions.php, home.php の順にファイルが表示されます。functions.php が存在しない場合は無視されます。home.php が存在しない場合は index.php が表示されます。これらのすべてのファイルが存在しない場合はブラウザには何も表示されません。

functions.php はサイトのコンテンツ表示と、管理画面の表示の際に読み込まれます。その為、不要な文字があると、wp-admin の表示に影響が出る場合があります。

Exchange メールフローでメール到達を抑制する

Office 365 の Exchange を使ってメールを送受信している場合、迷惑メールが受信トレイに届く前にブロックすることができる。

手順

  1. https://www.office.com/ にログインする。
  2. 管理 – Exchange をクリックする。
  3. メールフローのルールをクリックする。
  4. 新しいルールをクリックして、メールを削除するルールを作成する。

PHP – URL 引数を扱う

URL 引数を受け取る

index.php から test.php にリンクする際に 2 つの引数を渡しています。

index.html

<html>
  <a href="test.php?code=1250&name=Yamada">ここをクリック</a>
</html>

test.php

<?php
  print($_GET['code'] . "<br>");
  print($_GET['name'] . "<br>");
?>

フォームから値を入力して送信する

index.php のフォームで入力した値を test.php に渡しています。

index.html

<html>
  <form method="GET" action="test.php">
  <div>コード:<input type="text" name="code"></div>
  <div>名前 :<input type="text" name="name"></div>
  <input type="submit" value="決定">
  <input type="reset" value="クリア">
  </form>
</html>

test.php

<?php
  print($_GET['code'] . "<br>");
  print($_GET['name'] . "<br>");
?>

PHP – 関数

urlencode

文字列を UTF-8 エンコードします。

<?php
  $v1 = "東京都";
  $v2 = urlencode($v1);

  echo($v1 . "<br>");
  echo($v2 . "<br>");
?>

count

要素数をカウントします。

<?php
  $w1 = array("Japan", "USA", "CANADA");
  echo(count($w1) . "<br>");
?>

http_build_query

Web API が使用するクエリー文字列を作成します。パラメータ内容は自動的に UTF-8 エンコーディングされます。

<?php
  $url = "http://search.yahooapis.jp/WebSearchService/V2/webSearch?";
  $params = array(
    "appid" => "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjjjkkkkkklllllmmmmm",
    "query" => "東京都",
    "results" => 10
  );
  $contents = file_get_contents($url . http_build_query($params));
  echo($url . http_build_query($params));
  var_dump($contents);
  echo($contents);
?>

file_get_contents

指定された URL からデータを取得します。

<?php
  $url = "http://www.itlab51.com";
  $contents = file_get_contents($url);
  echo($contents);
?>

json_decode

JSON 文字列をデコードします。

<?php
  $url = "http://search.twitter.com/search.json?q=" . urlencode("東京都");
  $contents = file_get_contents($url);
  $result = json_decode($contents);
  echo("<pre>");
  var_dump($result);
?>

isset

変数の内容が null でないことを判断します。null でない場合は true を返します。null の場合には false を返します。

<?php
  $v1 = null;

  if (isset($v1))
  {
    echo("$v1 is not null");
  }
  else
  {
    echo("$v1 is null");
  }
?>

arsort

連想配列を逆順にソートします。

<?php
  $w1 = array();
  $w1["Japan"] = 1;
  $w1["USA"] = 3;
  $w1["CANADA"] = 3;
  $w1["USA"] += 1;

  arsort($w1);

  while (list ($key, $value) = each($w1))
  {
    echo("$key : $value <br>");
  }
?>

htmlspecialchars

特殊文字を HTML エンティティに変換します。特殊文字とは、HTML を記述する上での < や > などの記号です。

<?php
  $v1 = "<HTML> A&B </HTML>";
  $v2 = htmlspecialchars($v1);
  echo($v1 . "<br>");
  echo($v2 . "<br>");
?>

sprintf

フォーマットされた文字列を作成します。特にパラメータとして渡す変数の順序が変わる時などに便利です。

<?php
  $FirstName = "Hanako";
  $LastName = "Yamada";

  echo(sprintf("私の名前は、%s %s です。<br>", $LastName, $FirstName));
  echo(sprintf("My name is %s %s.<br>", $FirstName, $LastName));
?>

array_keys, array_values

連想配列のキーまたは値を配列として扱います。

<?php
  $w1 = array();
  $w1["Japan"] = 1;
  $w1["USA"] = 3;
  $w1["CANADA"] = 2;

  foreach(array_keys($w1) as $key)
  {
    echo("$key<br>");
  }

  foreach(array_values($w1) as $value)
  {
    echo("$value<br>");
  }
?>

join

配列の内容を連結して一つの文字列を作ります。

<?php
  $w1 = array("Japan", "USA", "CANADA");
  $w2 = join("/", $w1);
  echo($w2);
?>

PHP – 制御文

if

== 演算子で比較します。

<?php
  $w1 = "Hello";
  if ($w1 == "Hello")
  {
    echo("一致<br>");
  }
  else
  {
    echo("不一致<br>");
  }
?>

条件判定を行います。1 以上が true に、0 が false に判定されます。

<?php
  $w1 = 0;
  if ($w1) echo("一致<br>"); else echo("不一致<br>");

  $w1 = 1;
  if ($w1) echo("一致<br>"); else echo("不一致<br>");

  $w1 = 2;
  if ($w1) echo("一致<br>"); else echo("不一致<br>");
?>

foreach

コレクションのループ処理をします。

<?php
  $w1 = array("Japan", "USA", "CANADA");

  foreach($w1 as $value)
  {
    echo($value . "<br>");
  }
?>

コレクションのループ処理をします。=> を使用することにより、キーと値を処理することが可能です。通常の配列ではキーは 0 から始まる数値になります。連想配列の場合には指定されたキー名が入ります。

<?php
  $w1 = array("Japan", "USA", "CANADA");

  foreach($w1 as $key => $value)
  {
    echo("$key : $value <br>");
  }
?>

PHP – 演算子

算術演算子

数値の計算に使用する演算子です。

<?php
  $v1 = 10;
  $v2 = 3;

  echo(($v1 + $v2) . "<br>"); // 加算
  echo(($v1 - $v2) . "<br>"); // 減算
  echo(($v1 * $v2) . "<br>"); // 乗算
  echo(($v1 / $v2) . "<br>"); // 減算
  echo(($v1 % $v2) . "<br>"); // 剰余
?>

文字列

文字列を連結する演算子です。

<?php
  $v1 = "Hello";
  $v2 = "Japan";

  echo($v1 . $v2 . "<br>");
?>

代入演算子

<?php
  $v1 = 10;
  echo($v1 . "<br>");

  $v1 += 2;
  echo($v1 . "<br>");

  $v1 ++;
  echo($v1 . "<br>");

  $v1 --;
  echo($v1 . "<br>");

  $v2 = "Hello";
  $v2 .= "Japan";
  echo($v2 . "<br>");
?>

PHP – ユーザー関数

同一ファイル内で関数を定義する

function を使用すると、ユーザーが独自の関数を作成することができます。このサンプルでは、2 つの引数を受け取り、加算した結果を返します。

<?php
  function CalcAdd($v1, $v2)
  {
    return $v1 + $v2;
  }

  echo(CalcAdd(10, 15));
?>

関数のパラメータに初期値を設定することができます。関数を呼び出す際に初期値を設定したパラメータを省略すると、初期値が使用されます。

<?php
  function CalcAdd($v1, $v2 = 20)
  {
    return $v1 + $v2;
  }

  echo(CalcAdd(10, 15) . "<br>");
  echo(CalcAdd(10) . "<br>");
?>

別ファイルで定義されて関数を使用する

func.php ファイルに関数を定義します。

<?php
  function CalcAdd($v1, $v2)
  {
    return $v1 + $v2;
  }
?>

関数を実行する PHP ファイルから require 関数を使用して、func.php をインポートします。

<?php
  require "./func.php";
  echo(CalcAdd(10, 15));
?>

Amazon パントリーって手数料がかかる?

Amazon でいつも注文しているのだが、商品をかごに入れたところ、パントリーと出た。しかし、あまり気にしなかった。

ところが、注文履歴をみてびっくり!手数料 390 円もとられているではないか。

このことは次のサイトに説明が載っている。
Amazonパントリーとは | よくあるご質問 | お客様の声

プライム会員でも取られるとは。パントリーって一体何か?日用品を簡単にまとめて注文できる仕組みらしいが…

これからはパントリー発注には気を付けたい。

健康保険・厚生年金保険の加入

健康保険・厚生年金保険の加入手続きを行ったので、まとめてみた。

健康保険・厚生年金保険 新規適用届

次のページからダウンロードできる。
事業所を設立し、健康保険・厚生年金保険の適用を受けようとするとき|日本年金機構 (nenkin.go.jp)

A4 横形式の書類で、記入歴があるので、順次埋めていく。

健康保険厚生年金保険 保険料口座振替納付(変更)申出書)

次のページからダウンロードできる。
健康保険・厚生年金保険 保険料関係届書・申請書一覧|日本年金機構 (nenkin.go.jp)

記入が終わったら、銀行に出向き確認印をもらっておく。

被保険者資格取得届/厚生年金保険70歳以上被用者該当届

次のページからダウンロードできる。
従業員を採用したとき|日本年金機構 (nenkin.go.jp)

自分自身や社員の情報を記載する。

健康保険 被扶養者(異動)届(国民年金第3号被保険者関係届)

次のページからダウンロードできる。
家族を被扶養者にするとき、被扶養者となっている家族に異動があったとき、被扶養者の届出事項に変更があったとき|日本年金機構 (nenkin.go.jp)

先頭に自分自身か社員の情報を記載し、追加する扶養情報を記載する。

現在事項全部証明書

法務局に出向き、会社の証明書を取得する。1 通 600 円。

補足説明

  • 申請した月の 1 日目からの加入となる。
  • 扶養者の年収(年金含む)が 103 万円を超えると、何かしら面倒になる。
  • 扶養者の年収(年金含む)が被保険者の年収の 1/2 を超えると、何かしら面倒になる。最悪加入できないかもしれない。
  • 健康保険証が届いたら、他の健康保険証を速やかに返納すること。過払いがあれば、返還される。
  • 記入用の Excel は非常に入力しづらい。
    • いわゆる方眼形式で作っているので、数字 1 桁単位でセルが割り当てられている。
    • 口座振替の申請書はフリガナ対応になっていて、非常に入力しづらい。

オムロン 体重・体組成計 HBF-230T-SW

オムロン 体重・体組成計 HBF-230T-SW を買ってみた。

測定時は乗るだけで、自動的に電源が入り、過去の履歴から誰が乗ったのかを自動判別してくれる。

スマートフォンにデータを転送できて、グラフ表示ができる。転送は自動もできるが手動にしている。スマホの画面を下に引き下げるとデータが同期される。ちょっと更新レスポンスが遅いかな。それでも満足はしている。アプリの更新とは別に国別データのダウンロードを要求される時がある。これはストアではなくて、直接オムロンから入手しているようだ。オムロンにアカウントを作れば、クラウドにデータを同期することもできる。

PHP – 定数、変数、配列

定数

定数の宣言は、define 関数を使います。第 1 引数に定数名を、第 2 引数に内容を記述します。

<?php
  define("Japan", "日本");
  echo(Japan)
?>

変数

変数は、先頭に $ を付けて表現します。

変数の宣言と変数の代入を行うサンプルです。

<?php
  $v1 = 100;
  $v2 = 100.25;
  $v3 = true;
  $v4 = "Hello, World!";

  echo($v1 . "<br>");
  echo($v2 . "<br>");
  echo($v3 . "<br>");
  echo($v4 . "<br>");
?>

変数を宣言して、値を代入した後でも、別の型の値を代入することができます。

<?php
  $v1 = 100;
  echo($v1 . "<br>");
  $v1 = "Hello, World!";
  echo($v1 . "<br>");
?>

配列

配列を作成するサンプルです。(1)

<?php
  $w1 = array();
  $w1[0] = "Japan";
  $w1[1] = "USA";
  $w1[2] = "CANADA";

  echo($w1[0] . "<br>");
  echo($w1[1] . "<br>");
  echo($w1[2] . "<br>");
?>

配列を作成するサンプルです。(2)

<?php
  $w1 = array("Japan", "USA", "CANADA");

  echo($w1[0] . "<br>");
  echo($w1[1] . "<br>");
  echo($w1[2] . "<br>");
?>

配列を作成するサンプルです。(3)

<?php
  $w1[] = "Japan";
  $w1[] = "USA";
  $w1[] = "CANADA";

  echo($w1[0] . "<br>");
  echo($w1[1] . "<br>");
  echo($w1[2] . "<br>");
?>

配列を作成するサンプルです。(4) 異なる型の値を個々の要素に代入することができます。

<?php
  $w1 = array(100, "USA", true);

  echo($w1[0] . "<br>");
  echo($w1[1] . "<br>");
  echo($w1[2] . "<br>");
?>

配列は、サイズを指定することなく作成できます。

連想配列

連想配列を作成するサンプルです。

<?php
  $w1 = array("CODE1" => "Japan", "CODE2" => "USA", "CODE3" => "CANDA");

  while (list ($key, $val) = each($w1))
  {
    echo("$key : $val<br>");
  }
?>

PHP – 基礎

概要

PHP は PHP is Hypertext Pre-processor の略で、Web アプリケーションを開発するための言語です。正確には、HTML に埋め込むことができるスクリプト言語です。動作環境は、PHP モジュールを組み込んだ Apache です。

PHP は HTML の中に記述することができますが、HTML のファイルの拡張子は php である必要があります。拡張子が html や htm のファイルに記述しても PHP のコードは実行されません。

PHP のコードは、<?php と ?> のタグ内に記述します。拡張子が php のファイルであっても、<?php と ?> で囲まなければ、HTML も記述することができます。

出力

出力は、echo 関数または print 関数を使用します。改行は HTML の <br> を使用します。改行は本来であれば、エスケープ文字の \n を使用しますが、正しく改行できない場合がありますので、HTML の <br> を使用すると確実です。

<?php
  echo "Hello, Japan<br>";
  echo "Hello, USA<br>";
  print "Hello, CANDA<br>";
?>

ダブルクォートとシングルクォート

エスケープ文字を出力する場合、ダブルクォートで囲むと、エスケープ文字を出力します。シングルクォートで囲むと、エスケープ文字の判定がされず、単なる文字列として出力されます。

<?php
  echo ("\"Hello\"<br>");
  echo ('\"Hello\"<br>');
?>

変数を出力する場合、ダブルクォートで囲むと、変数の内容を出力します。シングルクォートで囲むと、変数の判定がされず、単なる文字列として出力されます。

<?php
  $v1 = 100;
  echo ("v1 : $v1<br>");
  echo ('v1 : $v1<br>');
?>

論理値

論理値には true と false があります。true の内容を出力すると、1 となり、false を出力すると、空文字列になります。但し、if 文で使用する場合には、1 以上が true と判定され、0 が false と判定されます。

<?php
  echo (true . "<br>");
  echo (false . "<br>");
?>

結果の中から項目の内容を取得する

Web API を実行した結果の中から要素名を指定して、内容を取得するには、-> を使用します。このサンプルでは、Twitter から取得したツイート全体は $Contents に格納されています。その中の $result 配列に個々のツイートが格納されています。この配列を foreach でループ処理しながら、from_user を指定して、ツイートを発信したユーザー名を取得しています。

<?php
  $url = "http://search.twitter.com/search.json?q=" . urlencode("東京都");
  $file = file_get_contents($url);
  $contents = json_decode($file);

  foreach ($contents->results as $ret)
  {
    echo ($ret->from_user . "<br>");
  }
?>

マイクロソフト アクション パック サブスクリプションの更新

マイクロソフト アクション パック サブスクリプションを更新した。

更新が通知されるメールに記載されている「パートナープロフィール」のリンクをクリックして、パートナーセンターに入り、MPN に入る。

すると、すぐに更新の案内が出ているので、手続きを進めるだけだ。で、ここで気づいた。JCB カードが使用不能になっている。VISA から Master だけみたい。ネットショップの開設で調べているときに JCB は手数料が他よりも高く別設定になっていたので、手数料の関係かな。

次に重要な更新がある。それは Office 365 E3 の更新だ。まずは特典 – Azure とクラウドに入り、Microsoft Office 365 E3 に入る。すると、ライセンスキーが表示されるのでコピーする。

次に記載されているリンクから Microsoft 365 管理センターに入り、終了日を延長する。

WordPress 設定を変更する

WordPress の設定を変更する方法の一つに php.ini を変更する方法がある。

扱うファイルサイズを大きくする

post_max_size = 50M
upload_max_filesize = 50M
max_execution_time = 300

高度な画像処理の機能を追加する

extension=imagick.so

Adobe PDF のパスワードを外す方法

パスワード付きの PDF が送られてきた際、ローカルで開くたびにパスワードを入力する操作は非常に面倒だ。

しかし、PDF のセキュリティ機能を解除するのはほぼ不可能だ。このように開くパスワードだけならば、簡単な方法がある。それは Microsoft Print to PDF を使って、PDF ファイルに印刷すればいいだけだ。そうすると、パスワードなしの PDF ファイルが出来上がる。

Windows 10 オプションの更新プログラム

Windows 10 2004 から Windows Update でオプションの更新プログラムで、ドライバの更新ができるようになっている。マシンによって表示される内容はまちまちだ。アップデートしてみた。

しかしながら、空回りしているだけで、特に何もアップデートされた様子はない。通常ファームウェアをインストールすれば、再起動が必要となるが、全く再起動は必要なかった。

 

VBS タイプのアダルト広告の削除方法

アダルト広告の削除方法です。アダルト広告の表示方法にはいくつかの方法がありますが、今回はタスクのスケジュールに組み込まれた方法に対する削除方法です。

確認方法

  1. ファイル名を指定して実行から、[タスクのスケジュール] を実行します。
  2. タスクスケジュールライブラリのリストの中で、見覚えのない項目を探します。今回は XXXXX_12345 とします。
  3. この項目のプロパティを開き、タスクの実体を確認します。今回は C:\Users\testuser\AppData\Roaming\Identities\XXXXX_12345.vbs とします。

削除方法

  1. タスク XXXXX_12345 を削除します。
  2. エクスプローラで、C:\Users\testuser\AppData\Roaming\Identities フォルダを開き、ファイル XXXXX_12345.vbs を削除します。

まとめ

Windows を再起動して、アダルト広告が表示されないことが確認できれば、削除が完了です。

MySQL 備忘録

大きなサイズのバックアップを復元する

バックアップファイルのサイズが大きい場合、phpMyAdmin で復元ができない。設定を変更することで可能。

■ファイル
C:\xampp\php\php.ini

■設定内容
upload_max_filesize = 10M

MySQL ユーザーパスワード変更

phpMyAdmin を開き、ユーザー → root@localhost で変更する。次にファイルの設定も変更する。

■ファイル
C:\xampp\phpMyAdmin\config.inc.php

設定
$cfg[‘Servers’][$i][‘password’] = ‘password’;

MySQL エンコード変更

MySQL のエンコードを UTF-8 に変更する。

■ファイル
C:\xampp\mysql\bin\my.ini

■設定
[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
lower_case_table_names=0
port= 3306

MySQL が使用するポート

3306 である。サーバー側でポート開放する。

MySQL のサーバーにクライアントから接続する

C:\xampp\mysql\bin\mysql -u root -D TestDB -p
mysql> grant all privileges on TestDB.* to root@’%’ identified by ‘password’;
mysql> flush privileges;

MySQL にコマンド接続する

C:\xampp\mysql\bin\mysql -u root -p
mysql> use TestDB
mysql> show tables;
mysql> desc TestTable;
mysql> quite

PAGE TOP
MENU