WordPressのER図

一部のフィールドは省略
参考ER図


WordPressのDB設定 | wp-config.php

ルートパスの直下にある「wp-config.php」がDB設定ファイルになっている。

※wp-config.phpの内容を抜粋
	// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
	/** WordPress のためのデータベース名 */
	define( 'DB_NAME', 'hello_wordpress' );
	
	/** MySQL データベースのユーザー名 */
	define( 'DB_USER', 'root' );
	
	/** MySQL データベースのパスワード */
	define( 'DB_PASSWORD', 'xxxx' );
	
	/** MySQL のホスト名 */
	define( 'DB_HOST', 'localhost' );
	
	/** データベースのテーブルを作成する際のデータベースの文字セット */
	define( 'DB_CHARSET', 'utf8mb4' );
	
	/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
	define('DB_COLLATE', '');
	


画像からサムネイルを一括で作成する | Regenerate Thumbnailsプラグイン

  1. 画像からサムネイルを一括で作成する | Regenerate Thumbnailsプラグイン
  2. プロジェクトホーム\wp-content\uploads\2019\10」にオリジナルサイズの画像ファイルを配置する
  3. wp_postsに画像ファイルのデータを登録する。(DBを直接編集)
    例 「haze.jpgをプロジェクトホーム\wp-content\uploads\2019\10」に配置した場合
    IDpost_authorpost_datepost_date_gmtpost_contentpost_titlepost_excerptpost_statuscomment_statusping_statuspost_passwordpost_nameto_pingpingedpost_modifiedpost_modified_gmtpost_content_filteredpost_parentguidmenu_orderpost_typepost_mime_typecomment_count
    829712019/10/21 0:002019/10/21 0:00 テストデータの画像です。hazeハゼinherit openclosedhaze2019/10/21 0:002019/10/21 0:00test2140attachmentimage/jpeg0
  4. wp_postmetaにデータを登録する。(DBを直接編集) 例
    meta_idpost_idmeta_keymeta_value
    728297_wp_attached_file2019/10/haze.jpg
  5. Regenerate Thumbnailsのツール画面を開く。
  6. サムネイルの一括作成を実行する。
  7. サムネイルが作成される。
    WordPressダッシュボードのメディアやギャラリーにも画像が一覧表示されるようになる。

CSSスタイルの編集

一般ページのCSSスタイルはテーマエディターにて編集できる。

アクセス
管理画面→概観→テーマエディター(テーマの編集)

プラグイン開発におけるCSSスタイルの上書き(style.cssを上書き)

プラグイン開発の際、ボタン類へのCSSスタイルが効かないことがある。 style.cssの記述方法が原因。
この場合、CSSスタイルの記述にタグ名まで含めるとスタイルが効くようになる。

CSSスタイル

	input.small_btn1{
		font-size:0.8em;
		padding:3px;
		background-color:#9b9b9b;
	}
	

WordPressのCSS | 子テーマを作成

  1. /wp-content/themesに子テーマのフォルダを作成し、その中に「style.css」を作成。 フォルダはテーマの名称になる。
    テーマ名の例:animal_child
  2. style.cssにコメントを記述。 ここのコメントは一般への説明書という扱いになる。
    style.css
    /*
     Theme Name: Animal Child
     Theme URI: 
     Description: for test
     Author: Kenji Uehara
     Author URI: http://amaraimusi.sakura.ne.jp/
     Template: twentynineteen
     Version: 1.0.0
     License: MIT
     Tags: test
     Text Domain:  
    */
    
    /* 以降にCSSを記述 */
    div{color:red}
    span.xxx{color:red}
    			
    Templateには親テーマのコード名称をセットする。
  3. ダッシュボードを開き、左メニューの「概観」をクリックすると、作成したテーマの情報が掲載されているので、 作成したテーマの有効化する。
  4. function.phpに以下を記述。
    	add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    	function theme_enqueue_styles() {
    		// 子スタイルの適用
    		wp_enqueue_style( 'child-style', '/wp-content/themes/animal-child/style.css');
    	}
    		
  5. 以上でサイトページに子テーマが適用されるようになる。
  6. ダッシュボードから子テーマのCSSを編集できる。
    「ダッシュボード → 概観→ テーマエディター」で編集ページを開き、右上から該当のテーマを選択する。

カスタムタクソノミーを追加 | register_taxonomy

	$args = array(
		'label' => '猫カテゴリー',
		'public' => true,
		'show_ui' => true,
		'show_in_quick_edit' => true,
		'show_admin_column' => true,
		'hierarchical' => true,
		'rewrite' => false,
	);
	register_taxonomy( 'cat_category', 'product', $args );
	

WordPressのエクスポート | All-in-One WP Migration

WordPressの標準エクスポートはデータ容量が大きくなるほど、不具合も多くなうようだ。
代わりに「All-in-One WP Migration」プラグインを用いる手がある。

All-in-One WP Migrationプラグインのエクスポートはテーマなども含む。
エクスポート、インポートの流れはシステムのクローンという感じである。


メニューに追加 | admin_menu | add_submenu_page

	// メニューのツールへ新項目を追加する。
	add_action('admin_menu', 'add_pages');
	function add_pages() {
		add_submenu_page('tools.php', '動物管理','動物管理',  'level_8', 'animal', 'animal_page');
	}
	
	function animal_page() {
		echo '動物管理ページ';
	}
	
参考サイト


WordPressと関連付いていないプレーンなphpファイルから、$wpdbオブジェクトを利用。(DBアクセス)


<?php
$wp_dp = dirname(dirname(dirname(__DIR__)));
require_once($wp_dp . '/wp-load.php'); //例→ C:\Users\user\git\wordpress_prject\wp-load.php
// 注意:wp-load.phpは$_POSTの値をサニタイズしてしまう。サニタイズされると$_POSTに格納されているjson文字列がパースできなくなるので注意。

global $wpdb;
echo "Hello World!";

$sql = 'SELECT * FROM wp_posts LIMIT 4';
$data = $wpdb->get_results($sql);
var_dump($data);
	
参考サイト:AgoHack:[WordPress] $wpdb を使って SELECT 結果取得

WordPressのセッション | Warning: session_start(): Cannot start session when headers already sent in ...

WordPressプラグイン開発において、適当な場所で「session_start()」を記述すると下記の警告エラーが表示される。
Warning: session_start(): Cannot start session when headers already sent in ...

確定ではないが、一時的な対策として以下の方法がある。

	add_action('init', function(){
		if(session_status() !== PHP_SESSION_ACTIVE){
			@session_start();
		}
	});
	
「@」は警告を非表示するための記号。
単に、「@session_start();」だけでもいいかもしれない...。


メニューを編集する

  1. 左メニュー → 外観 → メニュー
  2. メニュー名テキストボックスに任意の名前を入力
  3. 「固定ページを自動追加」、「メニューの位置」にチェックを入れる
  4. 「メニュー項目を追加」からメニューに追加したいページのチェックボックスにチェックを入れ、「メニューに追加」ボタンを押下。
  5. その後、「メニューを保存」ボタンで保存する。
  6. 公開サイトを表示するとメニューが追加されていることが確認できる。