バージョン6.4で問題になっていたバグは修正されて、
最新の6.4.2では正常に表示されるようになっています。
問題に気付いていなかった人は何のことか分からないままでしょう。
最初はWP本体にこんな致命的なバグが発生するなんて信じられませんでした。
危うくプラグインの方に責任を負わせるところでした。
今回の件はバージョンアップではなく、バージョンダウンと呼んでも良い現象でしたね。
事実、初歩的な解決策として、パージョンダウンしかないとまで思っていましたから。
カテゴリーアーカイブ: WordPressに関すること
>>>62件の記事があります。
メールによる絵文字入り文の投稿
以前から気付いてはいたのだが、Ktai Entryとういうプラグインはバージョンの新しいphpやWordPressではNGだ。
新しいWPであっても古いphpを使えば投稿できていた時期もあったが、
最新のバージョンではそれもNGとなってしまった。
理由は明白で、かなり前から更新がなされておらず
WPのバージョンアップに対応できていないのだ。
となると代替のプラグインを使うしかないのだが、
今のところ”Postie”が一番のお勧めではないかと思っている。
ただ、絵文字入力を希望している人は、データベース側で文字変換コードが
対応していないと、投稿できないので注意が必要だ。
対応のさせ方については簡単で、たった一か所変更するだけでOKのようだ。
方法については www.kfk-kikaku.com/sample1 の方に書いているので参考にしていただきたい。
新たなトラブルに遭遇
WPをバージョン5.5.1に更新したら、コメントが表示されないというトラブルに見舞われました。
解決策をググってみると、まあ色々と出てきますが
今回のケースに関しては的を射ていないものばかりです。
解決策の代表的なものとしては、プラグインが悪さをしているというもの。
あとは、コメントを表示させるコードが抜けていることを疑わせるもの。
これらをすべて検証してみましたが、トラブルを解消するには至りませんでした。
問題解決のために、まる一日はまりそうになりましたが、
意外と直ぐに閃きました。
これはテーマそのものに問題があるのではないかと。
筆者の場合、テーマのフォルダ名を自分好みに変更していますので、
ダッシュボード内で更新をかけてもテーマフォルダの中身は更新されません。
以下、実際に問題解決に至った方法です。
ただし、子テーマを作っていることが絶対条件です。
作っていないのであれば、編集済みのファイルを上書きしてはいけません。
先ず、テーマそのものをダウンロードして解凍します。
次に、style.css以外のすべて(サブディレクトリは必要ない)をFTPソフトを使ってリモートフォルダに上書きします。
気を付けなければならないのは、ローカルフォルダに上書きをしてはならないということです。
これさえしなければ、失敗しても元の状態に戻せるので安心です。
googleの検索エンジンで書き換えられたtitleタグ
6月7日に書いた記事の結果報告になります。
結論から言うと一度書き換えられたタイトルは、こちらで修正してもその通りには直してくれません。
修正してからもう2カ月以上が経っています。
教訓としては、titleタグ部分は慎重に取り扱わなければならないということです。
titleタグに書かれているものとページの内容との整合性が取れていないと書き換えられるらしいのですが、もう少し研究してみる余地があるようです。
あと、一つ気付いたのはWordPressで使われているセパレーター”|”は置き換えられる可能性があるということです。
セパレーター以後を無視された例もあります。
誰かがブログに書いていましたが、著作権のことを考えると
他人のものを勝手に変えるのはどうかと思いますね。
googleにtitleタグを書き換えられる
原因は分かっています。
タグ内に語句が重複していたからです。
これはtitleタグにサイト名が自動で挿入されるWPの仕様にも問題があると思います。
ならばと、バージョンの4.4からサポートされたtitleタグを
フックによって編集できるという機能を使って書き換えてみた。
さて、その結果はどうなるでしょうか。
果たしてgoogleはこちらの好み通りに直してくれるでしょうか。
まあ、どうであれ楽しみではあります。
結果は追って報告したいと思います。
残念!Global Content Blocks
このブラグインはショートコードを作ってくれる優れものだったのだが、
もう数年前にはサポートが終わっていて、WPのプラグインのページからも削除されていたんだね。
このようなプラグインを使っていると、いつかはサイトに不具合が出ることになる。
事実、本日WPを5.2にバージョンアップしたところ、「サイトに技術的な問題が発生しています。」と表示され、
レイアウトが乱れる現象に見舞われた。
テーマのバージョンにも関係しているかもしれないことが、影響を受けないサイトがあることから分かる。
このようなことになったのも、5.2から導入された「リカバリーモード」のせいらしい。
前にも書いたことがあるが、WPってときどき有難迷惑なことしてくれるんだよねぇ。
これはあくまで個人的な意見です。
ちょっとおかしな現象が・・・
メインのサイトとブログでは”Multi Device Switcher”というプラグインを使って
PC版とモバイル版を切り替えるようにしていますが、
グーグルとヤフーの検索エンジンではモバイル版がキャッシュされています。
もちろんPC版がキャッシュされて欲しいところですが、
これには何か良い解決策があるのでしょうか。
ヤフーの方はメニューボタンが効きませんので、他のページを開くことができません。
これはプラグインのバグと判断しても良いのかなぁ。
無限ループに陥るの巻
どういうことかというと、ブログの設置サンプルで用意しているサイトが
読み込みの際に中々完全にロードされないので、異なるブラウザで同時に表示させてみたところ、
片方で途轍もないスピードで読み込みを繰り返している現象が見られた。
一体いつからこうなっていたんだろう?
更新はしなくても時々は見るようにしないと・・・。
トラブルの解決には少し時間を要したが、現在は元通りというか普通に見ることができる。
原因は何だったのかというと、更新が何年もなされていないプラグインが他のプラグインと
コンフリクトを起こしていたようだ。
その証拠にそのプラグインの使用を止めると、あっさりと問題が解消された。
WordPressの進歩は速いので、プラグインの中にはそれについて行けてないのが結構あるじゃないのかなぁ。
無料で使わせてもらっている手前、ユーザーとしては何の文句も言えないのが辛いところだね。
カスタムメニューのソース的整形
カスタムメニューをデフォルトのまま導入すると
最初のliタグが改行されずに吐き出されてしまう。
この問題を手っ取り早く解決するには、
”ulタグを自動的に入れない”という以下のようなテンプレートタグを使う方法がある。
<?php wp_nav_menu( array( 'items_wrap' => '%3$s' ) ); ?>
その代り自分で直接header.phpにulタグを書き込む必要がある。
デフォルトだと”menu-”という接頭語的なものが自分が設定した
メニューのタイトルに付くが、これも回避できる。
Id名とかClass名はできるだけ短い方が良いと思うし、
必ず一緒に付くclassも必要がないと感じれば省くことができる。
因みに、下のように書くとデフォルトで吐き出されるcontainerタグも無しにできる。
また、前述したテンプレートと合体して使うこともできる。
<?php wp_nav_menu( array( 'container' => '' ) ); ?>
リストタグに付くやたら長くて多いId名やClass名を省くやり方は
多くの方が説明していらっしゃるので、そちらを参照してください。
カスタムメニューで任意のアイテムに”current”を付ける
例えば、このブログのような運営をしている場合、メニューの「WEBLOG」というところには
index.phpにより表示される記事のページにしか”current”というクラス名は付かない。
言い換えれば、投稿やコメントの個別ページ、カテゴリー、アーカイブ、検索などのページには
“current”は付かない。
これをWEBLOGに関するところでは全部”current”が付くようにする方法は、
WordPress Codexに条件分岐のテンプレートタグとして以下のように載っています。
<?php add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2); function special_nav_class($classes, $item){ if(is_single() && $item->title == "Blog"){ //この行は状況により変更が必要 $classes[] = "special-class"; } return $classes; } ?>
因みに”is_single()”の条件分岐だと投稿やコメントの個別ページにしか”current”は付かないようだ。
“is_singular()”だとカテゴリー、アーカイブ、検索のページまでカバーされる。
ただ、注意しないとブログのトップページに”current”が重複して付いてしまったり、
他のアイテムを表示しているときにも同時に”current”が付いてしまう。
除外するための”!is_xxx()”(”xxx”のところには”single”,”singular”,”page”などが入る)を
忘れないようにしよう。