WordPressにExcelのような表を貼り付けたい時

WordPressや無料ブログで記事を書いていると表を貼り付けたいときがあります。
Excelの表を画像として貼り付けるのが簡単ですが、
それだとSEO的にNGですね。コピーされないのはいいですけど。

テーブルの表を簡単に作るプラグインはありますけど、
はっきり言ってそれほど操作性もいいとも思えません。

できればExcelの表をそのままコピーできれば・・・とおもいます。

Tableに変換するサービスを使う

”Excel html 変換”などと検索するといろいろとツールがヒットします。
私は以下をよく利用させてもらっています。

エクセルシートをHTMLテーブルに変換しちゃう君 (ββ)

Excelで表を作っておいてフォームに貼り付けて変換を押すだけです。

そうすると、HTMLソースが出力されますので、
wordpressならエディタのテキストモードに貼り付ければよいです・・・。

ただし無駄な改行を省く

ただしスタイルシートも含まれているのですが、そのせいで上手く表示できないことがあります。
何故かと言うと、WordPressが勝手にstyleタグの中の改行をbrタグに変換してしまうためです。

なので、styleタグの内容から改行を除去してから貼り付けなければいけません。テキストエディタなどを使って、\r\nを除去しましょう。

どうしてこうなっているのでしょうかね・・・

幅の調整はエディタ上から簡単にできる!

セルの幅の調整はエディタのビジュアルからマウスで簡単にできます。
こうすることで、記事内に簡単に表組みを作ることが出来ますよ。

 

テキストで表現する

またはもっと簡単な方法で、テキスト自体で枠も書く方法です。
なかなか難しいのですけど、アドインを使うことで簡単に作れます。

Excelアドインのインストール

らくらく罫線

これをインストールします。
そして、表を作って、アドインから実行するだけです。

ただし殆どの場合崩れるかも・・・

というのは、等幅フォントを前提にしているからです。
わたしはメールで表を書きたいときなど重宝しているのですが、
やっぱり崩れます。

大量のスパムコメントを全削除する方法[WordPress]

新しく準備だけしてまったく更新していなかったWordPressサイトが一つありました。
ここの所、やたらメールが飛んで来るので何かと思ったら、コメントの通知でした。
で、開いてみると・・・、なんとすでにコメント数が5000を超えていました 汗

スパム業者半端ないです 笑

せっかくなので、アドセンスもクリックしていってくれればいいのに 笑

これだけのコメントがはいっていても、サイトへのアクセス数は増えていないところがすごいです。WordPressは優秀なのか何なのかよくわからないですね。ページ開かないでコメントだけするなんて不可能だし、明らかにスパムですよね・・・。

コメントを一気に消す方法はあるのか?

メニューのコメントの中に5000ものコメントを一気に消す方法はなさそうです。
記事は1つだけテスト的にいれただけですので、DB自体を一度削除してしまって再設定すれば全て消えてくれそうです。が、せっかくなので、プラグインで消してみます。

WP-dbmanager をインストール

ここ
からダウンロードして、プラグインからインストールします。

日本語化
はダウンロードして、プラグインフォルダに上書きします。

データベース、がメニューに追加されるので、
その中のテーブル・データ削除のwp_commentsを「空にする」にチェックをいれて、「実行」を押しました。

これで、綺麗にすべて消し去ることが出来ました。

WP-dbmanagerはDBのバックアップも簡単にできます。

コメントスパム対策

このままだとまたスパムコメントが押し寄せますので対策します。

IP Geo Block

IPアドレスで海外からのアクセスを認識してブロックします。ほとんど更新されていないブログへの嫌がらせはほぼ100%海外からなので海外アクセスをブロックするとピタリと止むのです。

Throws SPAM Away

コメントに日本語がないとスルーしてくれます。これもかなり効きます。

Login rebuilder

ログインURLを変更できますので、ログインアタックが0になります。

 

セキュリティのプラグイン

普通にWEBサイトを構築するよりは圧倒的にアクセスを呼びやすいwordpressですが、
そのため、アタックが多いのも確かです。
現状今一番アクセスが有るのは「不正なログイン」です 哀

Akismet Anti-Spam (アンチスパム)

最初から入っているプラグインです。
一度APIキーを取れば他のブログを立ち上げた際にも使えます。
設定の途中で金額が出てきて怖いですけど、Freeを選べば無料で使えます。
Wordpress運営してみるとわかりますが、多分初コメントはスパムだとおもいます。
しかも英語の・・・。
どうしてこう英語圏の人にはバレるんですかね 笑
コメントのついでにアドセンスを押してくれると良いのですけど。

 

SiteGuard WP Plugin

スパムコメントもめちゃ来るんですけど、なんか怖いのが不正なログインです。
これも、通常のWEBページアクセスの数倍来ます。数倍ですよ 汗
ログインの画面にひらがな認証が入るようになります。
スパムコメントのフィルタも含まれているようですので、もしかしたらAkismet要らなかった?と思ってしまいましたが、どうなんでしょうか・・・。

 

Throws SPAM Away

多分上の2つ入れていたはずなんですけど、スパムがたくさん来て仕方なかったため少し探しました。
すべて英語コメントだったので、全角文字がないのを単に捨てちゃえば良いんじゃないかと。
それで見つかったのがこのプラグインです。単純に日本語が入っていないコメントはスルーしてくれます。これでかなり静かになりました。
もしかしたら・・・。このプラグインだけで沢山なような気もしています。

 

まとめ

おそらくWordpressの固有のURLをキックしているのだと思いますので、
任意のファイルに変えても良いのならそれが最も強力なスパム対策になる気がします。

3つとも入れているのですが、
この記事を書いていてThrows SPAM Awayだけでいいような気がしてきました。
ちょっと試してみましょうかね・・。

スピードアップのプラグイン

ワードプレスのスピードアップ系のプラグインは結構たくさんあります。
そもそも効果があるのかどうかもよくわからないのですが、多少にでもスピードアップするのなら導入したいところです。

WP Minify

ミニファイです。
グーグルやヤフーのトップページのソースを見たことがあるでしょうか。
改行や空白が極力使われていない汚い(汚くみえる)ソースファイルです。
実はそのようにしたほうが少しレスポンスが高くなるのです。通信量が減るわけですから。
このプラグインはワードプレスの改行や空白を除去してくれます。特に設定もないので入れたほうが良いでしょう。

JetPack

以下のような説明文があります。

あらゆる WordPress サイトのセキュリティを確保し、トラフィックを増加し、読者の注目を集めることができます。

いろんなことが書いてあるのですけど

  • 画像の高速 CDN

とありますので、スピードアップにも貢献しているのでしょう。

MO Cache
WP File Cache

ワードプレスは基本英語で作られています。それを日本語化されたものを使っているのです。
そのために使っているのがmoファイルと呼ばれているもので、これをいちいち読み込むので遅くなってしまうというわけです。これをキャッシュしようというのがこのプラグインです。
動作させるためにはWP File Cacheも同時にインストールする必要があります。

WP Fastest Cache

結構たくさんの設定項目があります。無料で使える設定はすべてONで運用します。

  1. 動的WordPressブログから静的HTMLファイルを生成する
  2. 縮小HTML – ページのサイズを減らす
  3. Minify Css – CSSファイルのサイズを減らす
  4. Gzip圧縮を有効にする – サーバーから送信されるファイルのサイズを小さくして、ブラウザに転送する速度を上げます。
  5. ブラウザキャッシングを活用 – リピート訪問者のページ読み込み時間を短縮
  6. CSSを結合する – 複数のCSSリソースを1つに結合してHTTPラウンドトリップ数を減らす
  7. JSを結合する

WP Hyper Response

PHPのflush() 関数を使ってレスポンスを向上させているとのことです。
あまりにもPVが多いサイトの場合はホワイトアウトしてしまうとのこと・・・。

上記のようなプラグインを色々入れているのならなくても良いかもしれません。。。

プラグインは結局何が必須なのか

いろいろ紹介はされてるものの、何が良くて何が要らないのかよくわからない。
ちょっと一回まとめておこうと思う。

AddQuicktag

記事投稿画面をカスタマイズできるプラグインです。
PREとか意外と使うと思うんですけど、デフォルトで無いのでそういうのを追加できます。
一通り好みに設定できたら、ダウンロードして設定をとっておくことも出来てなかなか良いです。
これは個人的に必須だな。

Google Analytics for WordPress by MonsterInsights

Google Analyticsに簡単に登録できます。よくあるような、FTPソフトでアップロードとか一切不要です。楽でいいですね。
とりあえず立ち上げ時に必須ですかね。

Google XML Sitemaps

Search consoleに登録するにはSitemapが必要なんです。
そろそろデフォルトでこのくらいやってほしいですけど、無いので仕方ありません。

TinyMCE Advanced

エディタに記事編集用のボタンを増設できます。
いらないボタンを消すこともできるので、便利です。
AddQuickTagと組み合わせて使う感じですね。

Taxonomy Order

ワードプレスのカテゴリって勝手にソートされてしまいます。
これを好きな順番に整列できる様になります。

WordPress Popular Posts

よく読まれている記事、のヴィジェットを追加できます。

WordPress Related Posts

関連記事を表示できるようになります。
が・・・。テーマによっては表示しているテーマもありますので、不要かもしれません。

Table of Contents Plus

Hタグと連動した目次を自動で作ってくれます。
これは結構良いかも?!

 

 

 

ラズパイでSSL化(https)対応してみる

certbot-autoがインストールできたので、使用してみます。

実行する前にnginxを停止させてからでないとストップしてしまいます。
80番ポートを使うからですね。

$ sudo service nginx stop
$ sudo ./certbot-auto certonly --standalone -t
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): mlincyan@gmail.com

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel): m-ynko.azi2.com
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for m-ynko.azi2.com
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem
Your cert will expire on 2018-01-08. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

 

 

更新するのは簡単で「renew」すればいいだけです。
古い情報ではもっと色々オプションを追加しているのですけど、今は不要です。

$ sudo ./certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/m-ynko.azi2.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/mlin.ga.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem (skipped)
  /etc/letsencrypt/live/mlin.ga/fullchain.pem (skipped)
No renewals were attempted.
-------------------------------------------------------------------------------

実際にはSKIPされています。

で、実はこのままrenewするとstandaloneで実行されてしまうので、nginxを停止させる必要があります。
これだとちょっとあれなので、WEBROOTで実行するように変更しておきます。

$ ./certbot-auto certonly --webroot -w /home/mlin/www/html/m-ynko.azi2.com -d m-ynko.azi2.com --agree-tos --force-renewal -n
Requesting to rerun ./certbot-auto with root privileges...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for m-ynko.azi2.com
Using the webroot path /home/mlin/www/html/m-ynko.azi2.com for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Unable to clean up challenge directory /home/mlin/www/html/m-ynko.azi2.com/.well-known/acme-challenge

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem
   Your cert will expire on 2018-01-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

----

diffコマンドで何が変わったか見てみます。

/etc/letsencrypt $ diff renewal.def/m-ynko.azi2.com.conf renewal/m-ynko.azi2.com.conf
11c11
< authenticator = standalone --- > authenticator = webroot
13a14,16
> webroot_path = /home/mlin/www/html/m-ynko.azi2.com,
> [[webroot_map]]
> m-ynko.azi2.com = /home/mlin/www/html/m-ynko.azi2.com

ちなみに
standalone方式は自分自信でWEBサーバーを立てて認証をするのですけど、
WEBROOT方式は/.well-known/acme-challenge/というディレクトリに認証キーをおいて認証をします。

cronはこんな感じで。

0 4 1 * * /usr/local/certbot/certbot-auto renew && systemctl reload nginx

reloadしないと反映されないらしい。再起動は不要みたいです。
でもsystemctlはルートじゃないと駄目なのでルートのcrontabに設定しないと駄目です。

 

nginxの設定は最低限以下を追加すればOKです。
server{ の中に書きます。

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/m-ynko.azi2.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/m-ynko.azi2.com/privkey.pem;

 

うまく起動しなくなったときには設定ファイルをテストします。

$ sudo nginx -t

 

起動しなくなると結構ハマることがあるので、できればバックアップを行ってから実行しましょう。

ワードプレスのリストア後のドメイン変更

mysqlのデータベース上のドメインを移行先のドメインに変更しないと正常に動作しません。
予め設定でドメインを変更すればいいのかもしれませんが、
突然ドメインが使えなくなったり、既に変更が可能ではない状態では困ってしまいます。

データベース上のデータをいじってドメインを変更する

CGIをダウンロードします。

こちら
Database Search and Replace Script in PHP

私がダウンロードしたのは
Search-Replace-DB-3-1-0-emaildownloads.zip
でした。
ダウンロードのリンクはサイトにはなくって、メールを登録すると
後からメールにダウンロードリンクが送られてくる形式です。
ちょっとスパムが心配ではありますが、私はメインのアドレスを書いちゃいました。もうめんどくさくて・・・。

これを解凍して、当該ワードプレスのフォルダの中に入れます。
それでWEBからアクセスするとこんな画面が出ます。

どういう仕組なのか、databaseの欄ははじめから入っていました。直下のフォルダだと設定を読み込むのかな??

  • name・・・データベース名
  • user・・・データベースのユーザー名
  • pass・・・データベースのパスワード
  • host・・・データベースのホスト名

ポート番号はデフォルトです。

重要なのは一番上のreplaceの部分です。
左側に元のドメイン、右側に新しいドメインを書きます。

私の場合は「m-ynko.azi2.com」「res.azi2.com」と書きました。
regexは正規表現のオプションですが、とくに必要ないと思います。

actionの「update detail」を押してみます。何も変化がないように思います・・・

次に「dry run」を押します。

こんな風に対象が出てきます。
さらに「live run」をおします。

これで、うまく成功していれば、データベースの書き換えが完了します。

多分、新しいドメインでアクセスすればワードプレスのWEBページが表示されるはずです。

写真やプラグインやテーマ

データベースだけを復旧しても写真もプラグインもテーマも復活しません。
ファイルがない!、というエラーがたくさん出ます。
これを移行するには単にファイルを移せばいいだけです。

wp-contentのなかの

  • themes
  • plugins
  • uploads

をコピーするだけ。
はじめはコピーだけで認識されるのか不安でしたが、
管理はデータベースの中でやっているようなので、単にファイルを戻しただけで復活しました。
ちょっと自由度の低さを感じましたが、移行という意味ではやりやすいかもしれませんね。

 

WordPressワードプレスのリストア

バックアップファイルからリストアしてみます。

まずは、新規にインストール

おさらいも兼ねて、まずは新規にインストールを行います。

まずはドメインの設定ですが、今回は実験ですのでサブドメインにしました。

res.azi2.com というドメインを www/restore というパスに設定しました。

次に新規でデータベースを作ります。***_restore としました。

www/restore というフォルダを作ってWordPressをインストールします。

$ mkdir restore
$ cd restore/

ワードプレス本体をダウンロードします。

$ wget?https://ja.wordpress.org/wordpress-4.8.1-ja.tar.gz

解凍します。

$ tar -zxvf wordpress-4.8.1-ja.tar.gz

restoreの直下に中身を移動させます。

$ mv -i wordpress/* .

webからアクセスします。

http://restore.azi2.com

あとは指示に従えばインストールは完了します。

DBのリストア

バックアップしたsqlファイルからリストアします。

mysql -h mysql***.db.sakura.ne.jp -uアカウント -pパスワード データベース名 < dump.sql

800文字程度の記事が100以上ありますが、一瞬で終了します。
この時、他のデータベースの上書きは絶対にしてはいけません!上書きするので消えますよ。
コマンドを実行するときは一度エディタに書き出してよく確認してから実行すること。
また、他のデータベースもすべてバックアップを行ってから実行するのが万全です。

さて、これで、リストアできた・・・はずなのですが、そうは行きませんでした。
先程のres.azi2.comに接続しても真っ白い画面になってしまいつながりません。
仕方ないので、http://res.azi2.com/wp-login.php に直接アクセスすると・・・
なんと、もとのhttp://m-ynko.azi2.comに飛ばされてしまいます。
設定そのものがデータベースに書かれてしまっているため、移行前にドメイン設定を変えるか、移行先に同じドメインで移行するなら、これでOKです。

しかし今回の場合は別ドメインへのリストアなので、もうひと工夫必要となります。

WordPressワードプレスのバックアップ

一応ブログを始めるときにmysqlのバックアップははじめているのですが、
バックアップしているだけで、リストアできるのか全く謎です 笑
一応試しに軽くリストアしたことはありましたが、
ちゃんとまとめてなかったので、おさらいとして試しながらメモしたいと思います。

mysqlのバックアップ

バックアップはそんなに難しくありません。
mysqldumpというコマンドを使うとテキストファイルにダンプしてくれます。

/usr/local/bin/mysqldump -Q -h mysq****.db.sakura.ne.jp -uアカウント -pパスワード データベース名 > dump.sql

↓これはさくらインターネットのデータベース一覧画面です。

これを見ながら適宜書き換えて実行します。
アカウントとパスワードはさくらインターネットのログイン時に使うやつじゃなくて
データベースを作るときに作ったやつなので、注意です。
データベース自体は別のサーバーのようですので、アドレスが書かれています。
ラズパイ(でラズパイにDBを作っている場合)の場合にはlocalhostとなります。
さくらインターネットの場合にはデータベース名が「ユーザー名_****」のような形になるようです。自由に、という訳にはいきません。
あと、-uとか-pのあとに空白を入れないのがミソです。
入れるとうまくログインできませんよ。

-Qは何かと思いましたが、

-Q
–quote-names
DB名、テーブル名、カラム名などの識別子をバックティック文字で囲む。これらの識別子にMySQLの予約後が含まれていても問題なく動作するようになる

ということなので、つけておいたほうが無難です。