Cakeの開発環境作り

GitでCloneする。そこからだ。


MAMPのphpMyAdmin のURLはこちらです。
http://localhost:8888/phpMyAdmin/?lang=en


cakePHPのconfigフォルダの中にあるapp.phpを編集する。
Databasesouceの箇所をローカルのデータベースに繋がるように編集しなければいけない。

その前に、まずデータベースを作らないといけない。
app.phpにデータベースの名前が書かれているので、その名前でphpMyAdminを使ってデータベースを作りましょう。
sqlをインポートする時にはデータベースを指定する必要があります。


cakePHPの3以降は、venderというフォルダーに実行ファイルが入っている。
ローカルに環境を作る際は、環境のフォルダでcomposerを実行してインストールしないといけない。
composer installで自動的に必要なものを入れてくれるみたいです。

composerはインストールする対象を、実行したフォルダにあるcomposer.jsonを見に行って判断しているのだと思う。


リモート環境をローカルに再現する手順は、「データベースをエクスポートしてインポートする」「Gitでファイルを取得してhtdocsの下に置く」「composerでcakePHP3をインストールする」「app.phpを編集する」という4つのステップになるようです。

Laravel 管理画面

管理画面を作る
migrationのファイルを、usersのテーブルを作るやつをコピーした。

config/auth.php
これを触るみたいだ。
ーーー
もう一回。仕切り直し。

管理用のユーザーテーブルを作らないといけない。
1.modelを作ります。 php artisan make:model Adminuser -m
これで、モデルとmigrationのファイルができる。テーブルはできない。
2.usersのmigrationファイルをコピーして、Adminuserに貼り付ける。
そしてmigrateを実行する
3.「/config/auth.php」を編集する。GuardとProviderを編集追加する
4. RegisterAdminController.phpを作る。(RegisterControllerをコピってぺ)

5.bladeファイルをコピってぺ。(login.bladeとregister.bladeをコピって、adminlogin.bladeとadminregister.bladeを作ります)

jquery ajax完了してから

jsで要素の高さを取得などするときに、その要素がajaxで読み込まれたものだと、document.readyで取得しようとしても、そのタイミングではまだajaxが完了していない。

$(document).ajaxComplete(function() {
obj_top = $(‘#table_head_time’).offset().top;//ページの読み込み完了してから位置を取得
});

ajaxCompleteは、ajaxの完了のタイミングで動く。
複数のajaxが動いた場合は、その度にここが実行されるのだと思う。

WP titleを変える

//ページタイトルを設定する
add_theme_support( ‘title-tag’ );
function change_title_tag($title){

$title = ‘ok’;
return $title;
}
add_filter( ‘pre_get_document_title’, ‘change_title_tag’, 10000 );

add_theme_supportを関数の外で実行しないと、add_filterが動かないみたい。

WP 順番など

仕組みに関すること。

フックというものがある。
何かの処理のタイミングに、カスタムな処理を引っ掛けることができる。
そのタイミングで実行させることができる。

フィルターフックとアクションフックがある。
add_filterとadd_actionを使って、処理(関数)をフック(連動させる)することができる。

—引用。https://liginc.co.jp/web/wp/customize/92030

add_filter( $tag, $function_to_add, $priority, $accepted_args );

$tag→フックの名前を指定します。
$function_to_add→フックしたタイミングで実行したい関数を指定します。
$priority→優先順位を整数で指定します。同じフック処理がある場合に数値が小さい方から実行されます。
$accepted_args→関数で使用する引数の数を指定します。指定できる引数の数はフックによって異なりますが、複数指定の場合でも1つ目の引数が本来の値で、2つ目以降の引数はフックされた時に利用する為の追加の要素にすぎません。

WPの移行

PHP5から7の開発環境に移行する場合の手順

プラグインを使用しないときは。
・FTPで全データをダウンロード。開発環境にアップロードする。
・データベースをすべてエクスポート。(Duplicatorを使った)。
・保存したSQLの、ドメインを全置換する。
・PHP5用のワードプレスを7に持っていくとエラーが発生するのでその対応
・wp-login.phpのwp-logon(”,****)この関数が、一つ目に引数に配列を指定しないとエラーになる。

Twitter Developer

https://developer.twitter.com/

appを登録する。(デベロッパー登録?)
登録するとメールで、審査結果が送られてくるけれど、記載内容がイマイチな場合はメールで追加質問が送られてきて、7日以内に返信をしないと以降の一切のアプリ登録などができなくなる。

アプリ(App)の登録に必要な項目
・サービスのURL
・利用規約のページ
・プライバシーポリシーのページ
・コールバックのURL

組織名と組織のURL(運営会社の情報)

WP クエリの仕組み

$wp_query
グローバル変数。リクエストの情報を与えることで、データベースから情報を取得する。
リクエストというのは、大体はURLということだと思う。

WordPressのループの仕組みを深く知る query_posts() と get_posts() の違い


ーーー
query_posts と get_posts の違い

get_posts() は、データを取得するだけ。query_posts() は、グローバル変数 $wp_query を変更する。
使ったあとに、これで元に戻してあげる必要がある。
wp_reset_query();

ーーー

have_posts()
現在の WordPress クエリにループできる結果があるかどうかをチェックする。

new WP_Query()
これで、たぶん

$the_query = get_posts(
array( ‘category__and’ => $category_array_notempty, ‘numberposts’ => 20, ‘s’ => $search_str, ‘paged’ => $paged )
);

get_post にパラメータを私て、$the_queryを作る。
pagedはURLに含まれているので、何もしなくても取れる。

$the_query = new WP_Query( $args );

WP_Queryは、記事を取得するためのクラス。
get_postsはWP_Queryクラスを利用して記事を取得する。テンプレートタグ。
どちらもメインループには影響を与えない。

WP_Queryの場合
$args = array( ‘post_type’ => ‘post’ );
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ) : $the_query->the_post();
the_title();
endwhile;
wp_reset_postdata();

have_posts():投稿があることを確認する
the_post():$postの中身を書き換える。

$postを書き換えることで、the_title()などを使って投稿の情報を取り出すことができる。
$postはグローバル変数なので、書き換えた後でresetを忘れないように。
$postを書き換えるのは、投稿の情報を取得するための関数を共通化する(使い回す)ためなんだと思う。

WP 検索機能

getで[‘s’]をつけて送ると、結果はsearch.phpをテンプレートにして表示される。

検索フォームはsearchform.phpというファイルに記載する。
searchform.phpがない場合は、デフォルトの検索フォームが表示される。

カテゴリの絞込み機能を追加する場合は、フォームに下記の一文を追加する。