SQLの窓

2020年06月02日


WordPress のパスワードを失念して、登録していたメールアドレスが無い場合の復旧方法

FTP ソフトで、WordPress のインストールディレクトリを見て wp-config.php の内容より使用しているデータベースの情報を手に入れます。

次に phpMyAdmin でログインして、wpN_users の内容を見ます( N は、wp-config.php 内にもありますが、テーブルの prefix です )

その内容から、ログインユーザ名は解りますが、パスワードが解りません。なので、パスワード部分を以下の値に変更します
$P$BRP0P44Zq/sbraYd.65GBcXLbjsg72.
これは、password という文字列をパスワードとして登録した時に作成される文字列です。この文字列で更新して password でログインしましょう
posted by lightbox at 2020-06-02 18:35 | WordPress | このブログの読者になる | 更新情報をチェックする

WordPress のテーマ作成の入り口

最後の手段としては、FTPソフト( FileZilla・WinSCP 等 ) 必要ですが、とりあえずは File Manager をインストールしておけば、日本語対応ですし、一通りのファイル処理が可能です。






全くの初心者向けというか、PHP が何か解らない人向けです。HTML の構造と投稿データの関係を明確にする為に、style.css、index.php、header.php、footer.php のみを作成して index.php がメイン構造になります

style.php
/*
 Theme Name:   My Site
*/
header {
	color: red;
}
index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2.0">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<link rel="stylesheet" href="<?php echo get_stylesheet_uri() . "?" . time() ?>" media="screen" />
	
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>

<?php get_header(); ?>

<?php 
	while ( have_posts() ) : 
		the_post();
		the_title();
		the_content();
	endwhile;
?>

<?php get_footer(); ?>
the_post() は 次の投稿を読み込む処理です。それによって、the_title()the_content() がその投稿内容になります

<?php echo get_stylesheet_uri() . "?" . time() ?> では、テーマの style.css の URL を読み込んでいますが、"?" . time() はキャッシュ対応で、ブラウザからソースを見ると以下のようになります
http://ドメイン/wp/wp-content/themes/mysite/style.css?1591074313
※ PHP 内の .( ドット ) は文字列の連結です bloginfo('charset') は、Version 3.5.0 以降は "UTF-8"を常に返しますので、UTF-8 と記述したほうが良いです。 pingback_url は、以下の目的で使用されるようなので後々必要になった場合に対する明示( 覚書 )程度と考えてください( この記述が無くてもファイルは存在するので、セキュリティ問題は残ります )
スマホのアプリで記事を更新している
メールで記事を更新している。
jetpack プラグインを使用している
header.php
<header>
	<div>ヘッダです</div>
</header>
footer.php
<footer>
	<div>フッタです</div>
</footer>






posted by lightbox at 2020-06-02 13:54 | WordPress | このブログの読者になる | 更新情報をチェックする

2020年05月23日


ロリポップの WordPress に Twenty Fifteen テーマをインストールして、その子テーマを作成する

必要なものは、style.css と functions.php

WordPress Codex は解りづらい。

なのでとにかく空でいいので style.css と functions.php を wp-content/themes/twenty-fifteen-my-child に作成します

フォルダ名は自由。 Template: twentyfifteen がstyle.css のコメント内にあればいい

style.css
/*
 Theme Name:   Twenty Fifteen My Child
 Theme URI:    none
 Description:  none
 Author:       lightbox
 Author URI:   none
 Template:     twentyfifteen
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  twenty-fifteen-my-child
*/
※ Theme Name: に書かれたものが WordPress内で テーマ名 として表示されます

functions.php

PHP タグの上下には何もいれないようにします。( 日本語は書かないでください )
<?php

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') );
}

?>

上の中身は最後に入れます

まず、ディレクトリを作成して空のファイルを作成する方法ですが、一般的な FTP ソフトであれば、そのままの構造をローカルで作成してアップロードしてしまえばいいです。( できるのであれば、その際に中身もそれぞれのファイルに保存してもいいですが、WordPress のテーマエディタを使ったほうがより肌で意味を感じ取れると思います )

FTP ソフトが無い場合は、ロリポップの 『ロリポップ!FTP』で、ディレクトリを作成して、その中に二つのファイルを作成すればいいです。この際、Apple の PC で『ロリポップ!FTP』経由で内容を書き込もうとすると改行コードを正しく扱わないので WordPress で内容を書き込みます。それがいいです。

▼ これをアップロード


▼ アップロード完了


この時点では、WordPress はこのディレクトリをテーマとは認識しませんが、テーマエディタで選択可能になります



なので、前述の内容をエディタで書き込めば利用可能になります



▼ 上の更新で既に、テーマ名は認識されています



▼ 後は有効化するだけです






posted by lightbox at 2020-05-23 18:44 | WordPress | このブログの読者になる | 更新情報をチェックする

2018年09月09日


WordPress のテーマのテンプレート

wp-content/themes にフォルダを作成して、その中に最低限必要なのが、style.cssindex.php です。

0) index.php
( ここで使用しているテンプレートで、テンプレート階層の最下層です )

単純なサイトならばこれだけでもなんとかなりますが、これ以外に以下の部品を用意するだけで、WordPress のテーマの概要を掴む事ができます。

1) header.php
2) footer.php
3) content.php
( 1〜3 は、index.php から呼び出される部品です )

4) functions.php
( WordPress のオプションを設定したり、テーマで必要な関数を定義します / PHP で記述します )

style.css
@charset "UTF-8";
/*

Theme Name: テーマ名
Theme URI: テーマのサイトのURI
Author: 作者名
Author URI: 作者のサイトのURI
Description: 説明
Version: バージョン
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

*/


sryle.css は、もちろん css を記述して使用できますが、いろいろなバリエーションのページを作成する場合に必ずしもこのファイルにこだわる必要も無いので、ここでは単なる『テーマのラベル』として認識しておきます。

※ 自動的にこの style.css が必ず設置されるものでは無く、ここでは css は『テーマの構成』には関係ありません

この style.css の中にコメントとして書かれた内容のうち、『テーマ名』が、WordPress 管理画面の『テーマ』で表示されて『有効』にする事ができます



index.php

get_header()get_footer() は、後述の header.phpfooter.php で定義された内容を出力します。

wp_head() は、システムで定義済の ヘッダー部分に出力するべき内容を出力します。例えば、プラグインで登録されたアプリケーションにとって必要なものがここを経由して実装されます。

そして一番重要なのは、get_template_part() で、任意のテンプレートを使用する事ができるという事です。
ここでは、"content.php" が使用されます
<?php
/*

メインテンプレートファイル

これはWordPressのテーマで最も一般的なテンプレートファイルです
テーマに必要な2つのファイルの1つ(style.css)
これは、何も特定のクエリに一致しない場合にページを表示するために使用されます。

*/


get_header();
wp_head();
?>
</head>
<body>
<div id="root">
<h3>Main Template File</h3>
<?php

if ( have_posts() ) :

	// *****************************
	// 投稿がある間ループ
	// *****************************
	while ( have_posts() ) : 

		// *****************************
		// 次の投稿を取得
		// *****************************
		the_post();

		// *****************************
		// フォーマットを取得する
		// (通常は空文字列)
		// *****************************
		$get_post_format = get_post_format();
		print "<span>$get_post_format</span>";

		// *****************************
		// "content-{$get_post_format}.php" を使用
		// *****************************
		get_template_part( 'content', $get_post_format );

	endwhile;

else :
	// 投稿が無い場合に表示したい内容
endif;

?>

</div>
<?php get_footer(); ?>


header.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- ユーザヘッダー -->
<link rel="stylesheet" href="<?= get_stylesheet_uri() ?>" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css">


HTML 上の <head> 〜 </head> の共通の部分という認識でいいと思います。
※ ここでは、意図的に style.css を記述しています。


footer.php
<!-- ユーザーフッター -->

</body>
</html>


HTML 上の コンテンツの下部にある共通の部分です。

content.php
<div id="post-<?php the_ID(); ?>">
<a href="<?= esc_url( get_permalink() ) ?>"><?= get_the_title() ?></a>

<?php

	the_content( ); 
?>
</div>


the_content( ) は、現在の投稿の本文を出力し、the_ID() は投稿の ID を出力し、get_permalink() と get_the_title() で投稿のタイトルに単独ページへのリンクを設定しています。

functions.php

システムに対して、オプション設定を行うファイルです。オプションを追加したり、デフォルトで追加されているものを削除したり、PHP として技術的な処理を行ったりします。

ここでは、冒頭でテーマ限定でエラー時にエラー出力をするように設定しています。

さらに、システムで定義済の『投稿フォーマット』を追加して、投稿時に選択できるようにしています。


( ここでは、content-gallery.php が無いので、content.php が使用されます )

<?php
// ***********************************************
// このテーマでエラーの場合表示
// ***********************************************
error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING );
ini_set('display_errors', '1');

// ***********************************************
// 投稿フォーマットを追加
// ***********************************************
add_theme_support('post-formats', array( 'gallery' ));

// ▼ wp_head() から排除
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'wp_generator' );

// ***********************************************
// rsd_link は、general-template.php 内で定義
// ***********************************************
remove_action( 'wp_head', 'rsd_link' );


// ***********************************************
// emoji 関連削除
// ***********************************************
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

// ***********************************************
// wp-json 削除
// https://developer.wordpress.org/reference/functions/rest_output_link_wp_head/
// ***********************************************
remove_action('wp_head','rest_output_link_wp_head');

// ***********************************************
// dns-prefetch 削除
// wp-includes/default-filters.php
// ***********************************************
remove_action('wp_head','wp_resource_hints',2);

// ***********************************************
// フィード 削除
// ***********************************************
remove_action('wp_head', 'feed_links_extra', 3);

// ***********************************************
// prev & next  削除
// ***********************************************
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');

// ***********************************************
// canonical 削除
// ***********************************************
remove_action('wp_head', 'rel_canonical');

// ***********************************************
// shortlink 削除
// ***********************************************
remove_action('wp_head', 'wp_shortlink_wp_head');

// ***********************************************
// oembed 削除
// ***********************************************
remove_action('wp_head','wp_oembed_add_discovery_links');
remove_action('wp_head','wp_oembed_add_host_js');

// ***********************************************
// 管理バー 削除
// ***********************************************
add_filter( 'show_admin_bar', '__return_false' );

?>


二つの投稿の表示結果

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- ユーザヘッダー -->
<link rel="stylesheet" href="http://ドメイン/lightbox/wp-content/themes/lightbox/style.css" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css">





</head>
<body>
<div id="root">
<h3>Main Template File</h3>
<span>gallery</span><div id="post-35">
<a href="http://ドメイン/lightbox/template/2018/08/29/next-post/">ふたつめ</a>

<p>the_post_navigation の確認</p>
</div>
<span></span><div id="post-1">
<a href="http://ドメイン/lightbox/none/2018/08/29/hello-world/">Hello world!</a>

<p>WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !</p>
</div>

</div>
<!-- ユーザーフッター -->

</body>
</html>






posted by lightbox at 2018-09-09 21:22 | WordPress | このブログの読者になる | 更新情報をチェックする

2018年04月14日


WordPress の投稿画面のカスタマイズ3つ / フォント・記事リンク・一覧のリンク

PHP を解っていても、WordPress のカスタマイズとなると、インターネットに頼るしかありません。

投稿のテキストエリアのフォントを変更

まず最初に投稿のテキストエリアのフォントを変更したかったのですが、最初見つけた『editor-style.css』を使う方法はうまくいかなかったので、もっとダイレクトに function.php 内で行う方法を見つけました。

WordPress投稿画面 テキストエディタのフォントを変更したい

しかし、ここのコードは HTML の出力を echo で行っていたのでカスタマイズには不向きです。最初 PHP タグを閉じてやろうかと思いましたが、それだと失敗した場合影響が大きくて一般には不向きなのでヒアドキュメントで実装しました。
function change_editor_font(){

print <<<STYLE
<style>
textarea#content.wp-editor-area {
	font-family: "ヒラギノ角ゴPro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"MS Pゴシック",Verdana,Arial,Helvetica,sans-serif;
	font-size: 16px;
	color: #000000;
}
</style>

STYLE;
}
add_action('admin_head', 'change_editor_font');


投稿時の記事リンクをクリックした場合新しいしいタブを開く

これは、『投稿画面のパーマリンク編集部分とクイック編集を非表示にする方法』という記事内にあったコードを転用しました。

※ デベロッパーツールで見ると、id="sample-permalink" となってるリンクです。
add_filter( 'get_sample_permalink_html', 'hide_permalinkedit' );
function hide_permalinkedit( $permalink_html ) {
  $permalink_html = preg_replace( "/<a /" , "<a target=\"_blank\" " , $permalink_html );
  return $permalink_html;
}


投稿一覧の記事リンクをクリックした場合も新しいしいタブを開く

▼ このリンクです


さすがに、function.php 経由ではできそうにも無かったので直接変更しました。アップデートで元に戻ると思いますが、まあそのたびに変えればいいので。

みつけるのに、まずデベロッパーツールで見たら、 rel= があったのでローカルに 『wp-admin/includes』をダウンロードして JGREP というフリーソフトで検索しました。

※ JGREP 2.0.5 はWin7 でも動作する、テキスト内文字列検索のできる結構人気の高いフリーソフトです





これで、class-wp-posts-list-table.php の中の該当部分を変更しました。
		if ( is_post_type_viewable( $post_type_object ) ) {
			if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
				if ( $can_edit_post ) {
					$preview_link = get_preview_post_link( $post );
					$actions['view'] = sprintf(
						'<a href="%s" rel="bookmark" aria-label="%s">%s</a>',
						esc_url( $preview_link ),
						/* translators: %s: post title */
						esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ),
						__( 'Preview' )
					);
				}
			} elseif ( 'trash' != $post->post_status ) {
				$actions['view'] = sprintf(
					'<a target="_blank" href="%s" rel="bookmark" aria-label="%s">%s</a>',
					get_permalink( $post->ID ),
					/* translators: %s: post title */
					esc_attr( sprintf( __( 'View &#8220;%s&#8221;' ), $title ) ),
					__( 'View' )
				);
			}
		}





タグ:WordPress
posted by lightbox at 2018-04-14 13:25 | WordPress | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり