WordPressの翻訳プラグインBogoでリンクエラー

Bogoをアップデートしてv3.3にしたところ日本語<->英語のリンクが表示されないケースがあった。
(ショートコードので表示している部分)
固定ページの一覧を見ると英語、日本語共にドキュメントは存在している
英語ページの言語の部分を見ると

このような表示で元のページとのリンクが切れているようだ。

言語の編集部分のアップデートがあったようで以前の言語表示の部分とは違っていた。

取り急ぎ、前のバージョンに戻してしのぐ事とする。

前のバージョンはプラグインディレクトリから探すことができる

Bogo

https://ja.wordpress.org/plugins/bogo/advanced/&#8221;
このページの一番下の部分

指定するバージョンはアップデートする前のバージョーンが良い
(なお、他のプラグインなどでセキュリティアップデートなどの場合はプラグインの利用を停止するなど検討が必要)

/plugins/ディレクトリの前のプラグイン(bogo)を削除するかリネームして
いつもプラグインのアップロード方法を行うか

コンソールで
$plugins mv bogo bogo_bak
$wget https://downloads.wordpress.org/plugin/bogo.3.2.zip
$unzip bogo.3.2.zip
などとしてプラグインのダウングレードを行う。

とりあえずは前のバージョンに戻った。(根本的解決ではないので、アップデートを待つかソースコードを見てみる時間を取らないと、、、)

Laravel実際に投げているクエリーの取得(5.2)

use IlluminateSupportFacadesDB;

DB::connection()->enableQueryLog();

ここでデータベースへの問い合わせ

$queries = DB::getQueryLog();
dd($queries);

もしくは

Event::listen('IlluminateDatabaseEventsQueryExecuted', function ($query) {
var_dump($query->sql);
var_dump($query->bindings);
var_dump($query->time);
});

https://laravel.com/docs/5.0/database#query-logging
http://laravel-tricks.com/tricks/display-all-sql-executed-in-eloquent#comment-2655309790

Drupalの更新でエラーが出た時 cache bin specified

放置気味だったDrupalのアップデートにdrush upを行った所
WD php: Exception: Invalid or missing cache bin specified: datasources in DrupalDatabaseCache->clear() (line 520 of [error]
このようなメッセージが出たどうもdatasourceモジュールのキャッシュが削除出来ないとかそういう状態のようだ。
不要なモジュールの場合は管理画面からモジュールを無効にしてアップデートを行うといいでしょう

データの移行時に入れていたモジュールだったのでこちらを無効にして再度実行してみたところ
今度は
WD php: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘domaintools.cache_feeds_http’ doesn’t exist: [error]

今度はfeedsでキャッシュテーブルが無いと怒られた、SQLでテーブルを作ってしまおうとも思ったがまずは手動でモジュールのアップデートを試す。

$drush dl feeds
$drush updb

feeds module :
7209 – Reschedules feeds jobs.
7211 – Fix importer mappings for file and image fields to use :uri convention.
7212 – Create {cache_feeds_http} table.

実行するとメッセージにcache_feeds_httpの文字が
というかdrush updbしたときのメッセージが見やすい!

この後、drush upで無事アップデートできました。

drush up でエラーが出た時は
引っかかったモジュールを個別にアップデートするのが良さそうです。

Base table or view not found

Drupalのモジュールを開発していて
モジュール内でアクセス制御を行おうと思い。
drupal_access_denied();や
drupal_not_found();を実行してみると
Base table or view not foundのエラーが

Drupalとは別データベースにアクセスしていたのが原因なようで
db_set_active(‘external_database’);を実行すると
エラーメッセージ的に言うとベースデータベース?が切り替わるようで
not found等の処理を行う前にdb_set_active(‘default’);で
デフォルトのデータベースに戻してあげると
drupal_not_found();とした場合の制御が戻ります。

Multilingual front page

多言語化させた場合にTOPページの一覧に不達の言語の同一記事が出てしまいます。その場合の対応です。

色々と設定していたのですがdrupalgardensに答えはありました。

http://www.drupalgardens.com/documentation/language/multiple/interface/front-page

サイト構築>VIewsを選択します。
グレーダウンしていますが、右側のセレクタから編集を選んでください。

 

現在の設定では翻訳言語も出てしまいますのでFILTER CRITERIAを設定します。フィルターはコンテンツ: 言語(Content: Language)を選択します

次の画面では図のようにis One of Current user’s languageを選択し

Apply(all displays)を押下してください。

このままだとドキュメントルートでアクセスした場合に言語が指定されないので

表示する言語を指定したい場合は

環境設定>システム>フロントページより対象の言語を指定するURLを設定してください。

(URLのハンドリングによっては設定が違う場合もあるかもしれません)

これでフロントページにアクセスすると、言語でフィルターのかかったページが表示されます。

 

 

 

Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 in wp-includes/functions.php on line 3318

WordPressのプラグインを有効にした場合に標題のエラーが出た場合。管理画面に何も表示されないという時は疑ってください。(メッセージはwp-config.phpでdebug=trueにしないと表示されませんが)

ちなみに私は久しぶりにプラグイン作るのにcodexからコピーして作ろうとして発生しましたがw

「Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 inwp-includes/functions.php on line 3318」

エラー内容のfunctions.phpが原因では無く追加した(作成した)プラグイン側の問題ですので、無効にするか修正してください。

恐らく

add_options_page(‘Test Options’, ‘Test Options’, 8, ‘testoptions’, ‘mt_options_page’);
このようにaccess_level/capabilityの部分が8のように数字指定されているかと思います。古いプラグインには残っているかもしれません。

これは古い記述の仕方なのでadministratorなどと置き換えてください。

※最新になってない部分は英語版を参考にしましょう。

http://wpdocs.sourceforge.jp/%E7%AE%A1%E7%90%86%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AE%E8%BF%BD%E5%8A%A0

http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90#.E7.AE.A1.E7.90.86.E8.80.85

WordPressからSMTP(Google Apps 二段階認証)

WordPressからSMTPにてメールの送信を行う場合、WP Mail SMTPを利用すると便利です。

通常は

 

SMTP:smtp.google.com

 

WP Mail SMTP 設定画面
WP Mail SMTP 設定画面

SMTP:smtp.google.com

SMTP Port:465

Username:xxxxx@gGoogleAppsのドメイン

Password:GoogleAppsのパスワード

で送信が出来ますが、GoogleApps側で二段階認証を行っている場合は通常のパスワードでは送信出来ません。

送信に利用するユーザでログインした状態で

https://www.google.com/settings/security

Google Appsのセキュリティ設定にてアプリ パスワードの設定を選択してください。

 

次の画面でアプリパスワードの設定を行います。

画面の下の方のリストボックスで選択をします。

端末を選択で「その他」を選択し、名前を入力します。この名前は適当でいいですが仮にWordPressとでも入力しておきましょう。

 

生成を押すと黄色い枠の中にアプリパスワードが表示されます。

このパスワードを先ほどのWP Mail SMTPの設定画面のユーザパスワードの部分に設定してください。

設定後はその下にあるテストで実在するメールを入力してみてください。

メールが届かず、結果画面でfalseが表示されたらメールの送信は失敗です。

Google Appsのポリシーや、ユーザアカウントの設定等も再度確認してください。

 

 

Chrome snifferがAppspectorに変更

chromeでそのサイトがWordPress使っているかとかNginx使ってるとか知るのに便利な

Chrom sniffer、そういえば最近反応していないなと思って管理画面で見てみると

snifferの文字では反応しなかった、検索してみるとAppspectorに変わったようで、ダッシュボードにもAppspectorというのが存在した。

有効になっているがWordPressのサイトを見ても反応しないので

一旦ゴミ箱で削除をしてから

 

https://chrome.google.com/webstore/detail/appspector/homgcnaoacgigpkkljjjekpignblkeae?hl=ja

再度chromeに追加したところ有効になった

 

 

 

 

 

 

Pdflibのログ出力

ログを出力する場合

set_parameterの第二引数にfilename=パスからのファイル名

を指定する。ログ・ファイルには書き込み権限が必要

例:$pdflib->set_parameter(“logging”, “filename=/var/log/pdflib.log”);