マイ忘備録

フィリピン関連のメモ、ワードプレス関連のメモなど

Onedriveのフォルダ変更

Windows10でOnedriveのフォルダを変更しようとしたら、リンク解除、場所の変更に無茶苦茶時間がかかる or 終わらない。大量にファイルがあるせいだとは思うが・・・一度 resetしたら、処理は進んだ。

WindowsでOneDriveフォルダの同期が失敗する(終わらない)場合の対処方法:Tech TIPS - @IT

%localappdata%\Microsoft\OneDrive\OneDrive.exe /reset 

 

ワールドレミット安い早い (日本→フィリピンへの送金)

先日使い始めたのだが、日本からフィリピンへ送金するのにワールドレミット(WorldRemit)は安くて早い。

参考 WorldRemitとTransferWiseを使ってみた

 

先ほど、BDO銀行の自分の口座宛に送金してみたが、送金指示してから送金完了(BDOオンラインの画面でも確認)するまでに10分もかからなかった。入金(送金元)にデビッドカードが利用できるのけっこう便利。

f:id:tagayshin:20190521125606p:plain

10150円送金して、4750フィリピンペソになった。手数料150円。為替レートは0.475で、トランスファーワイズで見るとTTMが0.4769だったので、レートも悪くない(と思う)。

 

海外送金比較 | 為替レートを比較 - TransferWise

f:id:tagayshin:20190521130515p:plain

 

デブはネットで買え

ぐぐったら知恵袋で情報をゲットしたので

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11160508556

Q

メンズのXXLを置いてる実店舗ってありますか?
あるとしたら、どこがありますか?
Tシャツなどです。

 

A

超大型店舗ですね。
http://www.uniqlo.com/jp/shop/c/sp_large/

ズボンを買いに、超大型店の一つ新宿東口のビックロに行ったのだが、

エスト91までしかありませんでした!ありませんでした!

f:id:tagayshin:20190521021355p:plain

XXLどころかXLもない

 

教訓

  • デブ死ね
  • 知恵袋死ね

マイクロSDとマイクロSIMの大きさ

マイクロSDとマイクロSIMの大きさって(ほぼ)同じなんだ!と今更気づいた。マイクロSIMの方が1mm幅が広いけど。

 

左:マイクロSIM  15mm x 12mm

右:マイクロSD 15mm x 11mm

f:id:tagayshin:20190520221124p:plain

 

SDカード

SDカードの大きさは

SD > ミニSD > マイクロSD

SDメモリーカード - Wikipedia

f:id:tagayshin:20190520222027p:plain

SDカードの容量に応じてSDHC(4GB~32GB)、SDXC(64GB~)と言ったりもする。

 

SIMカード

SIMカードの大きさは

標準SIM > マイクロSIM > ナノSIM

最近のスマフォはほとんどナノSIM

 

SIMカードのサイズ・種類を徹底解説! SIMカードの選び方やサイズ変更・交換する方法 - モバレコ

f:id:tagayshin:20190520221700p:plain

 

SDカードを買おうとして、頭が混乱してきて整理した。ナノSDカードという規格は今のところない(ファーウェイ独自のNM Cardとかいうのはあるらしいけど)

管理者のみ表示ショートコード

囲み型のショートコードをはじめて作ってみた。管理者ログイン時のみ囲った中身を表示する。

ショートコード

add_shortcode('my_is_admin', 'my_isAdmin');
function my_isAdmin( $atts, $content = null ) {
  if ( current_user_can( 'administrator' ) ) {
    return $content;
  } 
}

投稿ページ

<my_is_admin>
あなたは管理者ですね!
</my_is_admin>

参考

WordPressのショートコードを自作してみる | webOpixel
→囲み方ショートコード
WordPressでユーザー情報で条件分岐 – Gatespace's Blog

日本語Codexでは引数に「権限グループ(Role)」でも可能なように書いてありいますが、本家Codexでは「権限(Capabilities)」のみとなっています。
実際に wp-includes/capabilities.php のコメント見てみると $capability Capability or role name となっていて Role でも大丈夫なようで、

https://codex.wordpress.org/Roles_and_Capabilities
関数リファレンス/current user can - WordPress Codex 日本語版
関数リファレンス/is user logged in - WordPress Codex 日本語版

はじめてのプラグイン(WordPress)

ワードプレスプラグインを作ってみた。

1. プラグインのファイル作成

ワードプレスをインストールしたディレクトリ/wb-content/pluguinsディレクトリ以下に任意の名前のphpファイルを作る(でかいのを作る場合はディレクトリを作ってその下に複数のファイルだが簡単なやつはphp一個でOK)。
f:id:tagayshin:20190519142935p:plain

2. プラグイン情報とコードの記述

作成したmyplugin.phpの中身を以下のように編集した。

<?php
/*
Plugin Name: My Plugin
*/

function helloFunc() {
    return "こんにちわ";
}
add_shortcode('hello', 'helloFunc');

こんにちわと出力するだけのショートコードを実装しただけ。先頭の方にはプラグイン情報をあれこれ記述するが、最低限必要なのはプラグインの名前(Plugin name: )だけ。
参考 プラグインの作成 - WordPress Codex 日本語版

WordPressプラグインを認識するのに必要な最低限の情報は、Plugin Name の行
・ファイルは必ず UTF-8 エンコーディングにしてください。

3. プラグインの有効化

ワードプレスの管理画面を見ると、作成したMy Pluginが認識されている。これを有効化すれば完了。
f:id:tagayshin:20190519143458p:plain

あとは、投稿ページで[hello]と記述すると、"こんにちわ"と表示された。
はじめてなのに実動10分程度で実装できた、超簡単。
参考 はじめてのショートコード(WordPress) - マイ忘備録

はまったところ

一瞬はまったのだが、プラグインを有効化したときに以下のようなエラーが表示された。

プラグインの有効化中に95文字の予期しない出力が生成されました。 “headers already sent” メッセージや RSS フィードの問題、その他の不具合に気づいた場合、このプラグインの停止または削除を試してください。

apacheのログを見るとこんなエラーが出てる。

PHP Parse error:  syntax error, unexpected '<', expecting end of file in ...

おかしなところでPHPの閉じタグを書いてたのが原因だった。

<?php
/*
Plugin Name: My Plugin
*/
?>

function helloFunc() {
    return "こんにちわ";
}
add_shortcode('hello', 'helloFunc');

sitemapショートコード

Cocoonではサイトマップを"[sitemap]"と書くだけで表示する便利なショートコードがある。
参考 簡単なサイトマップページを生成できるsitemapショートコードの使い方 | Cocoon

ワードプレスの勉強がてら、このショートコードをコピペ改造してみた。

1. ソースを読む

オリジナルのsitemapショートコードのソースは以下のsitemap_shortcode関数だ
参考 https://github.com/yhira/cocoon/blob/master/lib/shortcodes.php#L387

知らない処理をググって調べた見た

ob_start() / return ob_get_clean()

これは結果の出力をキャッシュする操作のようだ。これをしないと、目次がうまく表示されなかったりするみたい
参考 PHPのob_startでまとめて結果出力

<?php _e( 'ほげほげ', THEME_NAME ) ?>

これは国際化(日本語以外でも表示)処理用の書き方のようだ。
THEME_NAMEはCocoonで以下のように定義されている。

define('THEME_NAME', 'cocoon');

練習で作るショートコードではこれは無視でいいかな。
参考 関数リファレンス/ e - WordPress Codex 日本語版

テンプレート関数

wp_list_pages
wp_get_archives
wp_list_categories
wp_get_archives
このあたりを呼び出して簡単に表示している。

2. 改造する

カテゴリーと月別アーカイブに件数表示を追加。あと、タグ一覧も表示するように改造してみた。

カテゴリーに件数表示

wp list categoriesで引数show_count=trueを渡すと件数が表示される。

<?php wp_list_categories('show_count=true&title_li='); ?>


こんな感じでカッコで件数が付く

カテゴリー1(10)
カテゴリー2(5)

参考 テンプレートタグ/wp list categories - WordPress Codex 日本語版

月別アーカイブに件数表示

月別アーカイブの件数表示も似た感じ。wp get archivesで引数show_post_count=trueを渡すと件数が表示される。

<?php wp_get_archives('type=monthly&show_post_count=true'); ?>

参考 テンプレートタグ/wp get archives - WordPress Codex 日本語版

カッコが消える処理の対処

Cocoonではウィジット上での件数表示のスタイルのために、このカッコを除去する処理が行われている。
参考 投稿数に付加されるカッコを除去するカスタマイズ方法

add_filter( 'wp_list_categories', 'remove_post_count_parentheses' );
add_filter( 'get_archives_link',  'remove_post_count_parentheses' );

style.cssにうまいこと記述するとキレイに表示されるようだが、固定ページ上で試してるためか?何だかうまくいかなかったので、とりあえず自分が利用するサイトマップページ上では、この処理を無効ににしてカッコが表示されるように戻してみた↓かなり場当たり的な対処な気はする。

remove_filter( 'wp_list_categories', 'remove_post_count_parentheses' );
remove_filter( 'get_archives_link',  'remove_post_count_parentheses' );

タグ一覧の表示

タグ一覧は上のソースコードにないので、他からサンプルを拾ってきた。
一番簡単そうなのは、wp_tag_cloud()の引数にformat=list(リスト表示)、show_count=true(件数表示)とかすれば表示される

<?php wp_tag_cloud('format=list&show_count=true&smallest=11&largest=11'); ?>

だが、この方法だと何か他の一覧と見栄えが違う(文字の大きさだけじゃなくてスタイルが違う?)ので、get_tags関数を利用することにした。以下からコピーしただけ。
参考 WordPressでタグの一覧をリスト表示させる方法 | TechMemo

3. 実行する

コピペ改造したコードが以下になります。2段表示するため、2つに分けた。

//============================================
//サイトマップAショートコード関数(カテゴリー、タグ、月別アーカイブ)
//============================================
add_shortcode('my_sitemap', 'my_showSitemap');
function my_showSitemap() {

  remove_filter( 'wp_list_categories', 'remove_post_count_parentheses' );
  remove_filter( 'get_archives_link',  'remove_post_count_parentheses' );

  ob_start();?>

  <h2>カテゴリー</h2>
  <ul><?php wp_list_categories('show_count=true&title_li='); ?></ul>
  <h2>タグ</h2>
  <ul>
  <?php
    $posttags = get_tags();
    if ($posttags) {
      foreach($posttags as $tag) {
        echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a> ('. $tag->count .')</li>';
      }
    }
  ?>
  </ul>
  <h2>月別アーカイブ</h2>
  <ul><?php wp_get_archives('type=monthly&show_post_count=true'); ?></ul>

  <?php return ob_get_clean();
}

//============================================
//サイトマップBショートコード関数(固定ページ、ABC順)
//============================================
add_shortcode('my_sitemap2', 'my_showSitemap2');
function my_showSitemap2() {
  ob_start();?>

  <h2>固定ページ</h2>
  <ul><?php wp_list_pages('title_li='); ?></ul>
  <h2>記事一覧(ABC順)</h2>
  <ul><?php wp_get_archives( 'type=alpha' ); ?></ul>

  <?php return ob_get_clean();
}

固定ページからこれのショートコードを呼び出して
f:id:tagayshin:20190518180818p:plain
こんな感じで表示できた↓
f:id:tagayshin:20190518180946p:plain
https://papangit.com/wp/sitemap/

helloショートコードの次に作ったやつなので、何かおかしなことやってるかもしれないが、動いてはいる。