カテゴリー別アーカイブ: WordPress

wordpressで、幅を狭くすると本文が表示されなかった

ブラウザの幅を狭めると、wordpressの画面上で、本文が表示されませんでした
entry-content

横幅 400px以下だとこうなってしまうんですが、スマホだと表示されないのがあるんです
調べたら、cssファイルの記述を変更すると、この不具合を回避できることが分かりました

wp/wp-content/themes/twentyfourteen/style.cssの中に 11.0 Media Queriesと言う部分があるのですが、ここで、画面サイズにの制御を行っていました

@media screen and (max-width: 400px) {
の中にある、
.list-view .site-content .cat-links,
/* .list-view .site-content .type-post .entry-content, */
/* .list-view .site-content .type-page .entry-content, */
.list-view .site-content .type-post .entry-summary,
.list-view .site-content .type-page .entry-summary,
.list-view .site-content footer.entry-meta {
display: none;
}

2行をコメントアウトです

がんばれるなら、画面サイズが小さくなったら本文を小さいフォントで表示するとかの処理をした方が良いと思いますが、努力が足りません、

幅を狭めると本文が表示されない

wordpressの 3.9.1ですが、これ、横幅を狭めていくと本文表示が消えちゃうんです
スマホから自分のサイトを表示させて気が付きました

これは本文表示が出ている状態
横幅 385px

これが、上の本文が出ている状態から 1pixel狭めた状態
横幅 384px

wordpress上にログインの表示を出さない

ログインを押して表示されるのは、wp/wp-login.phpですが、これ phpで書かれていて、ipアドレスで表示させない!、とか出来るはずですが、ちょっと敷居が高かったので、簡単な apacheの方で wp-login.phpに制限かけました

conf/httpd.confに以下の行を追加しました


Order deny,allow
Deny from all
Allow from 192.168.1.0/255.255.255.0 127.0.0.1



Order deny,allow
Deny from all
Allow from 192.168.1.0/255.255.255.0 127.0.0.1

wp-login.phpに外部からアクセスすると 403エラーになります

phpの中でやろうとすると

$ipadd1=getenv(‘REMOTE_ADDR’);
if ( $ipadd1 == ’192.168.1.122′ ) {
ここがアドレス一致したら実行される部分
}
な筈なんだけど、wp-login.php、長くてどこに制限かければいいか画面でやめました

wordpress 標準のスタイルで 『コメントをどうぞ』 を消す方法

wordpress3.9.1にしましたが、設定ページでコメントをできないようにしても、表示されるページ上から、『コメントをどうぞ』の表示が消えないんです
サイト管理 – 設定 – ディスカッション – 新しい投稿へのコメントを許可する の×を消す

表示されてる『コメントをどうぞ』をクリックしても、実際にはコメントの投稿ページは表示されないんですが、どうも気分悪い
と言うことで、ソースから削除しました

wp/wp-content/themes/twentyfourteen/content.phpの 37行目

の行を削除

その他にも content-gallery.phpなど、同じ行があるので、そちらも削除した方が完璧かもしれません

wordpressの移設

今まで、バージョンアップが面倒(難しい)ので、wordpressは、ME1.5と言う古いのを使用していました

今回、サーバーを新しいのに更新し、linux,mysql,php等を最新のにしたら、wordpressが phpのエラー(正確にはワーニング)を表示するんです

Strict Standards: Only variables should be passed by reference in /hogehoge/legacy-b4/wp/wp-includes/gettext.php on line 66
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /hogehoge/legacy-b4/wp/wp-includes/functions-formatting.php on line 76
Warning: preg_replace_callback(): Requires argument 2, ‘ stripslashes(‘$1′) . clean_pre(‘$2′) . ‘

' ',
to be a valid callback in /home/localhost/legacy-b4/wp/wp-includes/functions-formatting.php on line 76

調べると、構文の使い方がよろしくないので新しいバージョンでは使わないでくれ
ってワーニングなんですが、それがどこか logに記録されるのならまだしも、ブログのページ上に表示されるのでかっこ悪いんです
また、その該当する命令が、.phpのプログラムのあらゆる所に使われているという

php.iniの
display_errors = On
を Offとすればワーニング出ないんですが、それで見なかったことにするのもちょっとオイオイなんで、重い腰を上げて wordpressを最新版にしました!!

難しかったこと
文字コードが、ME1.5はlatin1、3.91はUTF8と異なる
mysqlのtable構造も異なる
wordpressのページにはこうやればバージョンアップできると書いたページがある (が、試したができなかった。ME1.5じゃダメ?)

と言うことで、以下の方法でブログの中身を最新の ver3.91へ持ってきました

(1) 古いサーバーより mysqldumpコマンドで発言のテーブルのみを mysqlからバックアップ
(2) 新しいサーバーへ持ってきて iconvコマンドで文字コード変更
(3) 新しいサーバーへ mysqlコマンドでバックアップをリストア
(4) insert文を使って、新しい databaseへ必要な tableのみをコピー

これやっても、カテゴリーは table構造がまるで異なっていて復元できなかったなぁ
まあ、チマチマ、カテゴリーだけは設定していくか、、、、、

ちなみに (1)から (4)で使用したコマンドは
(1) mysqldump db名 wp_posts --default-character-set=latin1 > old.sql
(2) iconv --byte-subst=X -f EUC-JP -t UTF-8 old.sql > UTF8.sql
その後、このファイル内の文字列 latin1を UTF8に変更
別の database名で新しい wordpressを起動して、table構造を作成しておく
(3) mysql -u root wp < UTF8.sql
(4) mysqlに入っておいて use 新しいdb名
delete from wp_posts; をして、新しいテーブルをまず削除しておく
次に wp.wp_postsより、新しいdbのwp_postsへ必要なテーブルのみをコピーする
insert into wp_posts (ID,post_author,post_date,post_date_gmt,post_content,post_title,post_excerpt,post_status,comment_status,ping_status,post_password,post_name,to_ping,pinged,post_modified,post_modified_gmt,post_content_filtered,post_parent,guid,menu_order)
select ID,post_author,post_date,post_date_gmt,post_content,post_title,post_excerpt,post_status,comment_status,ping_status,post_password,post_name,to_ping,pinged,post_modified,post_modified_gmt,post_content_filtered,post_parent,guid,menu_order
from wp.wp_posts

これで一応表示するようにはなりました、、、、ふぅ