Gutenbergで画像のリンクを削除する方法

WordPressで投稿記事に画像を用いた場合、デフォルトではリンクが作成されますが、リンク情報の削除が分からず、調べたのでメモしておきます。

Gutenberg(バージョン 15.5.1)では、以下の場所に「リンクの削除」があるようです。
リンクの削除を押下し、投稿を更新すれば、リンク情報が削除できます。

ブログシステムを判断する方法

ブログシステムを判定するには、Chrome拡張を利用する

「Wappalyzer」などの拡張機能を利用する。

Word Pressテーマの確認方法は?

ページのソースを「wp-content/themes/」で検索し、テーマを判断する。
「wp-content/themes/○○/←がテーマの名前になる。

参考: 他サイトがどのWordPressテーマを使っているか調べる方法【最も簡単な調べ方・調査方法】

ads.txt の文字コード対処方法について

WordPress に ads.txt を設置しており,以下の文字コードエラーが出力されていたので対処した.

“ISO-8859-1” は誤った文字コードです。utf-8で作成してください。

Mac の各種エディタで utf-8 を指定してもエラーが通知されていたので,.htaccess ファイルに以下の一文を追加し,対処した.

<Files ads.txt>
AddType "text/plain; charset=utf-8" .txt
</Files>

また,.htaccess で HTTP アクセス全体を HTTPS にリダイレクトしているが,ads.txt へのアクセスは HTTP も許可することが推奨されているようだったので,以下を追加しておくことにした.

RewriteRule ads\.txt - [L]
# http → httpsに転送する設定
<ifmodule mod_rewrite.c>
RewriteEngine On

RewriteRule ads\.txt - [L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>

WP: WordPressフォルダ構成

せっかく調べたのでメモしておきます.

wp-admin WordPress 管理画面のためのファイル一式
wp-content WordPress システムファイル一式
languages 翻訳ファイル
plugins プラグイン ファイル
themes テーマ ファイル
upgrade アップデート時に使用するファイル
uploads 画像など
index.php ダミーのインデックス(フォルダ一覧が見えないようにする)
wp-includes コンテンツ一式(API,テーマ,プラグイン,画像など)
.htaccess Apache 設定ファイル
index.php テーマの使用チェック後に”wp-blog-header.php”を読み込む
wp-activate.php ユーザアカウントの有効化
wp-blog-header.php ワードプレスの環境とテンプレートのロード
wp-comments-post.php コメント投稿用
wp-config.php 設定ファイル ※ダウンロード時は “wp-config-sample.php”
wp-cron.php PHPによる擬似cron job
wp-links-opml.php リンクの OPML XML 出力用
wp-load.php WordPress の起動ファイル
WordPress を起動する場合,最初に処理し,ライブラリなどをロードする.
wp-login.php ユーザーの登録/認証 パスワード発行/リセット
wp-mail.php メールによるブログ投稿用
wp-settings.php ワードプレスが動くための変数・関数・クラスの基本設定
wp-signup.php ブログ名・ユーザー名・メールアドレス登録、検索設定
wp-trackback.php トラックバック処理と ping 送信用
xmlrpc.php xmlrpc 通信(XML-RPC protocol support for WordPress)

WP: 簡単なプラグインを作ってみた件

簡単なプラグイン作成を通して分かったことをメモしておく.

- プラグインが有効化されるとプラグイン ファイル内の関数がテンプレートタグとして使用できる.
- 関数が呼ばれるタイミングは,アクション,フィルターで指定することができる.

WP: WordPress の主なグローバル変数

$post 投稿情報
$posts 投稿情報 配列 / 投稿のコンテンツを nextpage 要素で区切ったページ
$page 投稿のページ番号
$wp_query WP_Query クラスのグローバル・インスタンス.ブログへの複雑な投稿やページのリクエストを扱う
$wpdb データベース アクセス
$id カレント投稿情報ID

参考: グローバル変数

WP: WordPress テンプレートについて

WordPress について隙間時間で勉強しているのだが,カスタマイズ手法についての書籍を読んでもピンとこなくて,とても苦労した.
振り返ってみると,WordPress で使用されている用語に関する知識がなかったと言うのが,大きい理由のように思う.

例えば,テンプレートという言葉はコンピュータ用語として広く使われているので,ある程度機能を想像することができるが,WordPress においてはどのようなものをテンプレートと呼び,テンプレートの実装はどのようにされているのか?なぜそのような構造になっているのか?がある程度分かってこないと,得た知識が身近に感じられなかったように思う.

といわけで,忘れないようにメモしておく.

- ページを構成するファイルを WordPress では,テンプレート ファイルと呼ぶ.
- それぞれのテンプレート ファイルをまとめて,1つのページを構成している.
- まとめているファイルは大抵 index.php で,他のテンプレート ファイルをインクルード タグで呼び出す.
- 複数のテンプレートで,テーマは構成されている.
- 用意されているテンプレートは,テーマにより異なる.
- テンプレートに記述されているテーマが用意するタグは, functions.php に実装されている.
- WordPress が用意するテンプレート タグは,wp-includes ディレクトリにある.
- テンプレートの適用には優先順位がある.(テンプレート階層を参照)
- スタイルは,style.css にある.

用語の大半がコンテンツ提供者への概念であって,カスタマイズを行うデベロッパへの概念ではないように感じられました.
PHP で書かれた関数なのにどういう違いがあるのか?理解するのに苦労したような気がします.

基本的に WordPress のカスタマイズとは,テーマ作成のことであって,システム改変ではないということも念頭に置いておく必要があると思います.
(私はよく分からなかったので,情報の整理が出来なかった…(>_<))

WP: formタグのaction属性がなかった件

WordPress 管理画面の「新規追加」ボタン押下時の処理について,コードを確認しました.

以下の赤枠のボタンです.

html では,以下のコードとなっています.

1
2
<a href="http://localhost:8888/wordpress/wp-admin/user-new.php" 
    class="page-title-action">新規追加</a>

早速,wp-admin/user-new.phpをみていきます.
新規ユーザーを追加する処理は,このファイルで処理されているようです.

次に,「新規ユーザーを追加」ボタン押下時に呼ばれる処理を探しました.

1
2
3
4
5
6
<input type="submit" 
    name="createuser" 
    id="createusersub"
    class="button button-primary" 
    value="新規ユーザーを追加" 
    kl_vkbd_parsed="true">

input が属する form の action 属性を参照すれば,呼ばれているコード ファイルが分かると思いましたが,action 属性を見つけることが出来ませんでした.

1
2
3
4
5
<form method="post" 
    name="createuser" 
    id="createuser" 
    class="validate" 
    novalidate="novalidate">

実際には,user-new.php 内の処理を参照すると「新規ユーザーを追加」ボタン押下時の処理も記載されているようですが,なぜこのファイルが呼ばれるのか?が分かりませんでした.

結局,HTML5 仕様をみて分かったのですが,

タグの action 属性が削除されている場合は,送信先はそのファイルとされるようです.

参考: 「action属性」で「送信先のURL」を指定しよう

HTML5 からの仕様として,action属性が必須でなくなった.
タグのaction属性が省略されている場合,送信先はそのHTMLファイル自身となる.

知らなかったので,メモしておきます.
これ知らないと分からないよなー

PHP: header() でリダイレクトさせている理由

先日からPHPを勉強しています.
PHPユーザ歴は長いのですがちゃんと体系立てて勉強してこなかったので,ここらで断片的な知識を体系立てて整理したいと思い,改めて勉強しています.
ですが,いざ始めてみると必要とされる知識の範囲がとても広く苦労しています.
html, css3, javascript, jquery, sass, php, wordpress, bootstrap4, cakephp など…

先日まで php でリダイレクトする場合に header() 関数を使用しますが,「なぜ header() を使用するのか?」と考えていました.
リダイレクトという単語ではなく,なぜ header っと考えていました.
HTTPヘッダ仕様については知っていましたが,理解が出来ていなかったわけです.

というわけで,改めて HTTP仕様をざっとチェックすることにしました.

参考: HTTP入門
参考: 【PHP】header()関数

これは時間かかるなー

p.s. wordpressコードをみていて,ルールがあるのか?知りませんが,コメント「// Main」以降に処理が記述されていることが多い思います.

WP: 投稿を取得する処理を眺めてます

先日からざっと WordPress の投稿を表示する処理を眺めています.

規模が大きいのでまだ全然分かりませんが,フォルダ構成とか初歩的なPHPの記述だったり,記事を表示するまでのざっくりした処理の流れは少し親近感がでてきました.
エントリ ポイントから記事を表示するまでを簡単にまとめてみました.
これからは,関数などを詳細に調べていくのがいいのか?
ただ眺めているよりは,テーマを見つけてカスタマイズ作業を通して理解を深めた方がいいのか?と思案中です.
この作業は結構時間がかかるなぁー.
過去,数年で何度も忙しさを言い訳に挫折しているからなー

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// ▼index.php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
// 	▼wp-blog-header.php
	// 1. WordPress ライブラリのロード
		wp-config.php でデータベース設定,デバッグモードなど各種設定を読み込む
		wp-settings.php
	// 2. WordPress クエリのセットアップ
	wp();
		WordPressのオブジェクトを生成して,グローバル配列にセット
			$GLOBALS['wp_the_query'] = new WP_Query();
			$GLOBALS['wp'] = new WP();
// 		▼functions.php
		function wp( $query_vars = '' ) {
// 			▼class-wp.php
			public function main( $query_args = '' ) {
				$this->init();
				$this->parse_request( $query_args );
				$this->send_headers();
				$this->query_posts();
				$this->handle_404();
				$this->register_globals();
					query_vars property をグローバル配列にセットする
	// 3. テーマ テンプレートのロード
// 	▼template-loader.php
		require_once( ABSPATH . WPINC . '/template-loader.php' );