wordpressでエラーが PHP Fatal error: Call to undefined function get_editable_roles() in stats.php on line 219

ブログのアクセスが急激にダウンしてまして何かとおもってログを調べたらJetPackのエラーでした。

PHP Fatal error: Call to undefined function get_editable_roles() in stats.php on line 219みたいなエラーが出ていた模様です。

これはJetpack + statsで生じていた問題のようです。

以下のURLで問題が指摘されていました。

http://wordpress.org/support/topic/undefined-function-get_editable_roles

Thank you so much.

Jetpack takes down the website way too often!!!

Jetpackが落ちてるとプラグインをいれているサイトまで落ちるってことでしょうか??怖!!

次のリリースでは直すみたいな話があるのでアップデートきたらわかるのかなと

BizVektorのフッター削除、商用利用可能なレスポンシブルWordPressテーマ

すごいテーマを教えてもらっちゃった(☝ ՞ਊ ՞)☝

テーマBizVektor(ビズベクトル)がすごすぎです。

  • レスポンシブル
  • 商用利用可
  • 管理画面の設定だけでサイト作成可能

めちゃくちゃすごいです。

BizVektorのテーマがあれば企業サイトなどを作るときにかなり楽になるのではないでしょうか(☝ ՞ਊ ՞)☝

フッターからBizVektorの表示を削除する

Powerd by BizVektorという表示がフッターにあって、それを消したい場合は有料版を買うか勝手に編集して構わないようです。

wp-content/themes/biz-vektor/inc/theme-options.php

上記の805行目あたりに、
$footerPowerd = '<div id="powerd">Powered by <a href="https://ja.wordpress.org/">WordPress</a> & <a href="http://bizVektor.com" target="_blank" title="BizVektor(ビズベクトル) WordPressテーマ">BizVekt or Theme</a> by <a href="http://www.vektor-inc.co.jp" target="_blank" title="株式会社ベクトル -ホームページ制作・WordPressカスタマイズ- [ 愛知県名古屋市・あま市 ]">Vektor,Inc.</a> technology.</div>';
と以前は上記のように書いてありました。

ただし
/* 利用規約上は表示を強制していませんが、差し支えなければなるべく消さないで下さい。 */
と書いてあるので面倒なら消さなくてもいいですね。

追記:久々に最新のテーマを見たら、以下のplugins.phpに移動されていました。

wp-content/themes/biz-vektor/plugins/plugins.php

例えばここですと、
//$footerPowerd .= '<a href="' . $bizvektorUrl . '" target="_blank" title="' . __( 'Free WordPress Theme BizVektor for business', 'biz-vektor' ) . '">';
//$footerPowerd .= ' BizVektor Theme by <a href="http://www.vektor-inc.co.jp" target="_blank" title="' . _x( 'Vektor,Inc.', 'footer', 'biz-vektor' ) . '">Vektor,Inc.</a> technology.</div>';

footerPowerd変数の行をコメントにしてしまえばフッターに表示されなくなります。つまり、表示の切替はバージョンごとに移動されると思ったほうがいいと思います。

やや上級者向けですが、BizVektorの表示場所は今後も変更される可能性がありますので、こちらのgrepコマンドを利用することで表示場所の検索が可能です。【作業効率化】CSSのクラスがどのファイルで使われているかgrepコマンドで検索する

wordpressにjQueryのスクリプトを書くとUncaught TypeError: が出る

wordpressテーマファイルに$(function(){});みたいに書くとうまく実行できず、Uncaught TypeError: とエラーが出てしまいました。

参考になったのは以下のサイト

jQuery Uncaught TypeError: Property ‘$’ of object [object Window] is not a function

http://stackoverflow.com/questions/10807200/jquery-uncaught-typeerror-property-of-object-object-window-is-not-a-funct

メソッドを呼ぶときに以下のような書き出しで書くといいみたいです。
jQuery(document).ready(function ($) {
書き出しを変更したら無事スクリプトが動きました。

wordpress公式にも同じ情報が載っていました。
http://codex.wordpress.org/Function_Reference/wp_enqueue_script

wordpressでjqueryを使うときは注意ですね。

All in One SEO Pack使用でタグが正しく表示されない問題

All in One SEO Packを使用している当サイトですが、テーマを変更したらタグだけtitleタグが正しく表示されていない状況になって困りました。

タイトルタグ内に表示されて欲しいのは以下の並び、タグ+ブログタイトルという構成です。
<title>pugiemonn | 人生休暇中</title>

しかし、以下のように表示されてしまいました。
<title>pugiemonn人生休暇中 | 人生休暇中</title>

タイトルタグの重複です。

原因はおそらくテンプレートとの文字コードあたりなのかもしれませんが調査はしていません。
対策としてセパレータを変えることで対応しました。

wordpressテンプレートのheader.phpを編集します。
<title><?php wp_title( '|', true, 'right' ); ?></title>
上記のようになっていたので、

|を:に変更しました。
<title><?php wp_title( ':', true, 'right' ); ?></title>

するとタイトルの重複が起こらなくなり表示されました。

追記:これでもダメでした。どうやらwp_title()の第一引数に|のようなエンティティ文字を入れれば大丈夫みたいです。

しかしこの手法だとそれぞれ個別のタイトルをブログのAll in One SEO Packから指定している場合、個別の記事ごとに書き換えないといけないみたいです。これは参りました。

以下のサイトにあるように関数を書き換えましたがだめでした。
http://mobile.uscons.co.jp/archives/161/

現象としてはtwenty twelveに変更してから起きた模様です。わからなくてこまってます。とりあえずテーマを戻してやり過ごすのかなあ。

wordpressのテーマを変更した際に見直す項目とは

wordpressのテーマを変更しました。

以前のテーマはよくある2カラムのテーマでしたが、新しいテーマは最近流行り?のレスポンシブルデザインでピンタレストみたいなテーマになっています。

テーマ変更時に色々なタスクが生じましたので、それらをメモしておきます。

テーマのカスタマイズ、変更点を確認

新しいテーマにした場合、新しいテーマについてしっかり理解しているかというとそうではないはずです。

ボクの場合、前テーマのカスタマイズ項目をすべてドキュメントには残していませんでしたが、カスタマイズした項目をドキュメント化しておくとテーマを変更した際に便利ですね。

固定ページのテーマを作成

wordpressの固定ページにオリジナルのテーマを当てていた場合、テーマの変更ではテンプレートは引き継がれませんので、新たに固定ページ用のテーマを作る必要があります。

固定ページをたくさん作っている場合は変更が大変かもしれません。
全部手動ですしね。ただし、前回の固定ページのスタイルと同じファイル名でテーマを作るとそのままwordpressが引き継いでくれるみたいです。これはいい仕組みです。

HTML・CSSデザインの変更

テーマを当て直すとかならずどこかにデザインの齟齬が生じます。

これらは適宜修正していかなければいけません。

外部スクリプト、ファイルの読み込みを確認

テーマが変わりますので、テーマが変わりますので当然ヘッダーが書き換わります。
bootstrapや外部のライブラリなどを利用していた場合は見直しが必要です。
ヘッダーにAnalyticsタグを入れている場合などももちろん修正が必要です。

ウィジェットの見直し

テーマが変わると引き継がれるウィジェットと引き継がれないウィジェットがあります。

前のテーマと比較して、ウィジェットがなくなっていないかを確認するといいですね。

functions.phpの見直し

新しいテーマではfunctions.phpが新しくなります。

テンプレート独自の関数を使っていた場合見なおす必要があります。
ショートコードなどを利用していた場合は、新しいテーマにすると動かなくなる可能性がありますので注意です。

広告・アドセンスの変更

広告を載せている場合、テンプレートが変わりますから広告も削除されます。

Quick Adsenseというプラグインでアドセンスを出している場合は必要ないのでQuick Adsenseオススメです。

リンク切れの確認

リンク切れを確認しないといけないです。

テーマを新しくした場合、大抵の場合国外のテーマを使用しますから単純にレイアウトが崩れるだけでなく、文字コードの問題でリンク切れを起こしたりする場合があります。

リンク切れの確認にはBrocke Link Checkerなどが便利です。

タイトルタグの確認

リンク同様に、タイトルタグをチェックします。

テーマを変更しただけでタイトルが性格に表示されなくなることがありました。
最低でも、一覧ページ、記事ページ、固定ページ、カテゴリーページ、タグページは確認しておくとよいでしょう。

まとめ

ざっとですがこんなかんじかと、ブログのテーマを変更してしまってゴタゴタしていますが今後共よろしくおねがいします(☝ ՞ਊ ՞)☝

当ブログのWPtouchを停止しました。

しばらく当ブログのスマートフォン用テンプレートプラグインWPtouchを停止してみます。
このブログは表示自体が結構重いのでスマホむけのUIを用意していました。

しかしWPtouchはアップデートのたびにテンプレートが初期化されてしまうので、アップデートのたびに毎回カスタマイズするのも面倒で、そこってコストになるんじゃない?と感じていました。

ここまでブログのデザイン作ったりして変更するのは面倒なのですが、次はWPtouchの代わりにレスポンシブルデザイン系のテンプレートを使用してスマホとPCのテンプレートにしようとおもいます。

今後ともよろしくおねがいします。

wordpressでphpをつかえるようにするプラグインで何を選ぶか

この記事を書こうかとおもって少し悩みました。

wordpressの記事上でPHPを実行できるプラグインはいくつかありまして、それぞれ問題がありました。それら問題をすべて洗い出すことが出来たわけではありませんが、3〜4個のプラグインを試した結果、今回はひとつPHPが扱えるプラグインを紹介したいと思います。

いまのところボクの環境で問題が起きていないのが以下のプラグインです。
WordPress PHP Execution Plugin

今後問題が生じた場合は他のものをまた探します。
とりあえず他のプラグインだと、PHPを実行するプラグイン以外のプラグインとの衝突で不具合が生じました。

具体的には表示が崩れたり、使えなかったり、エディタが使えなくなったりと色々あります。
このプラグインで問題なしということになることを祈っています(☝ ՞ਊ ՞)☝

WP touch 入門、導入時に最低限でカスタマイズする

WP touchは簡単なので皆さん使っているとおもいます。

しかしデフォルトのままでは色々かったるい箇所もあるのでその辺りを修正する項目として洗い出しておきたいです。
管理画面でできること、その他で切り分け色々メモしておきます。

言語を日本語に

WPtouch-japanese
WPtouch の設定から言語をJapaneseにします。

もしテンプレートをいじるときはエンコードをUTF-8にしておきます。

カレンダーアイコンをアイキャッチに変更

デフォルトだとカレンダーのアイコンが表示されているのでアイキャッチ画像に変更します。

WPtouch の設定から言語をJapaneseにします。記事一覧オプションから「記事のサムネイルまたは指定画像を投稿」を選択します。

テンプレートをいじる前に必ずバックアップ

WPtouchのテンプレートカスタマイズで注意することは、テンプレートでカスタマイズをしても、WPtouchをアップデートするとテンプレートが更新されて上書きされてしまうことです。

ですからテンプレートをカスタマイズしたら必ずバックアップをとることです。
テンプレートのディレクトリは以下にあります。
/wp-content/plugins/wptouch/themes/default/
これ以外の場所にテンプレートのバックアップをとってください。

右上メニューのCSSを修正

WP touchには右上にメニューという表示があるのですが、どうも初期のままではレイアウトが崩れるみたいです。
これはスタイルを変更します。

#headerbar-menu a{
white-space: nowrap;}

を追加すれば対応できます。

カテゴリやタグ記事一覧にアイキャッチ画像を表示する

wptouchのカテゴリやタグの記事一覧ページではアイキャッチが何故か表示されません。
なので、一覧にアイキャッチを表示したいとおもいます。

/wp-content/plugins/wptouch/themes/default/index.phpを編集します。
<?php if (is_archive() || is_search()) { ?>
↑こんな記述があるので、
<?php if (is_search()) { ?>
このようにしてis_archive()を削除します。
するとカテゴリやタグページでアイキャッチ画像が表示されるようになります。

wptouchのカテゴリにアイキャッチを表示

記事一覧に抜粋を表示する

WPtouchは記事一覧がとてもさみしいので抜粋を表示させることにします。

/wp-content/plugins/wptouch/themes/default/index.phpを編集します。
<a class="h2" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<div class="post-author"<
// 抜粋を表示させるように1行追加
<?php echo mb_substr(get_the_excerpt(), 0, 100); ?><?php echo "...<br clear=\"all\">"; ?><a class="h2" href="<?php the_permalink(); ?>">続きを読む</a>

20130211-155004.jpg

参考:
WPtouchの抜粋php the_excerptがオカシイので調整
http://slacklinefreestyle.blogspot.jp/2012/07/wptouchphp-theexcerpt.html

メニューの順序を入れ替える

WPtouchにはメニューがあるのだけどそのままの順序だと使いにくいです。
/wp-content/plugins/wptouch/themes/default/header.phpを編集します。
<div id="tabnav">
<a href="#head-pages"><?php _e("Pages", "wptouch"); ?></a>
<?php if (bnc_is_tags_button_enabled()) { wptouch_tags_link(); } ?>
<?php if (bnc_is_cats_button_enabled()) { wptouch_cats_link(); } ?>
<?php if (bnc_is_login_button_enabled()) { ?>
<?php if (!is_user_logged_in()) { ?>
<a id="loginopen" href="#head-account"><?php _e( "Login", "wptouch" ); ?></a>
<?php } else { ?>
<a href="#head-account"><?php _e( "My Account", "wptouch" ); ?></a>
<?php } ?>
<?php } ?>
</div>

このような記述があります。

これを
<div id="tabnav">
<?php if (bnc_is_cats_button_enabled()) { wptouch_cats_link(); } ?>
<?php if (bnc_is_login_button_enabled()) { ?>
<?php if (!is_user_logged_in()) { ?>
<a id="loginopen" href="#head-account"><?php _e( "Login", "wptouch" ); ?></a>
<?php } else { ?>
<a href="#head-account"><?php _e( "My Account", "wptouch" ); ?></a>
<?php } ?>
<?php } ?>
<?php if (bnc_is_tags_button_enabled()) { wptouch_tags_link(); } ?>
<a href="#head-pages"><?php _e("Pages", "wptouch"); ?></a>
</div>

ページ情報 > タグ情報 > カテゴリーという順序を
カテゴリー > タグ情報 > ページ情報に順序を入れ替えました。

functions.phpを書き換える

もし記事内で使っているショートコードなどがある場合はWPtouchのfunctions.phpにもコードを追加しなくてはなりません。

WP To Twitterの403 Forbidden: エラーについて

WP To Twitterがあまりつぶやいてくれません。

管理画面にこんなエラーがでていました
WpToTwitter-403-Forbidden

403 Forbidden: The request is understood, but it has been refused. This code is used when requests are understood, but are denied by Twitter. Reasons can include: Too many Tweets created in a short time or the same Tweet was submitted twice in a row, among others. This is not an error by WP to Twitter.

とりあえず短時間にたくさんつぶやくなってことだから特にこのエラー自体問題無さそうです。
ブログをEditしたタイミングでつぶやくのやめさせたりして、tweetを少なめにして対応するなどすればいいんじゃないかとおもいました(☝ ՞ਊ ՞)☝

W3 Total Cacheの管理画面でエラーがでる

W3 Total Cacheの管理画面で以下のようなエラーが出てしまいました

It appears Page Cache URL rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.

まず以下のファイルのパーミッションを644変更する
/wp-content/w3tc-ドメイン名/min/.htaccess
/wp-content/w3tc-ドメイン名/pgcache/.htaccess

それでもダメな場合は
/.htaccess
を確認。

# BEGIN W3TC Browser Cache


BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html


Header append Vary User-Agent env=!dont-vary


AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon



FileETag None

Header set X-Powered-By “W3 Total Cache/0.9.2.5”



FileETag None

Header set X-Powered-By “W3 Total Cache/0.9.2.5”



FileETag None

Header set X-Powered-By “W3 Total Cache/0.9.2.5”


# END W3TC Browser Cache
# BEGIN W3TC Page Cache core

RewriteEngine On
RewriteBase /
RewriteRule ^(.*\/)?w3tc_rewrite_test$ $1?w3tc_rewrite_test=1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9\-\.]+\.[a-z]+)\.?(:[0-9]+)?$
RewriteRule .* – [E=W3TC_DOMAIN:%2]
RewriteCond %{REQUEST_URI} ^/(niconama|note|deep)/
RewriteRule .* – [E=W3TC_BLOGNAME:%1.]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* – [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =””
RewriteCond %{HTTP_HOST} =net-vacation.com
RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|\/feed\/|wp-.*\.php|index\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC]
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC]
RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.5) [NC]
RewriteCond “%{DOCUMENT_ROOT}/wp-content/w3tc-%{ENV:W3TC_BLOGNAME}%{ENV:W3TC_DOMAIN}/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}” -f
RewriteRule .* “/wp-content/w3tc-%{ENV:W3TC_BLOGNAME}%{ENV:W3TC_DOMAIN}/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}” [L]

# END W3TC Page Cache core

# BEGIN W3TC Browser Cacheから# END W3TC Page Cache coreみたいな記述があるので、それをwordpressの元からある.htaccessの記述よりも上に持ってきて上書きします。

こんなかんじでエラーが消えました。

参考

W3 Total Cache : Page Cache URL Rewriting Is Not Working
http://www.mkyong.com/blog/w3-total-cache-page-cache-url-rewriting-is-not-working/