今週の音楽「mermaid on the seesaw」はいかが?
WordPress Popular Postsが突然機能しなくなった!
 いつの間にかWordPress popular posts(以下WPP)が機能しなくなってました。設定画面を確認してみると、少なくとも1ヶ月は機能していない。
 さっそくググってみると、いろいろな対処法が見つかる。
  • 最新ヴァージョンにアップデート。
  • 逆に古いヴァージョンに戻す。
  • wppを一旦無効にさせ再度有効に。
  • ajaxを有効に。
  • 他のプラグインが影響していないかチェック。
  •  「古いヴァージョンに戻す」以外はすべて試す。が、効果なし。ここまで2週間ほど試行錯誤(苦笑)




     で、今日。ふと、デフォルトのテーマで確認してみる。すると、ちゃんと機能するではありませんか!
     なんだ、自分のテーマに問題があったわけか。いや、最近まではちゃんと機能していたので、問題と呼ぶには語弊がある。きっとWPPのどこかのヴァージョンで、仕様が変わったんでしょうね。

     これで原因がかなり絞られた。さっそくhtmlやらphpを見直す。特にsingle.phpやheader.php。
     一番怪しいのは、自前で使っているjQuery。一旦無効にしてチェック。が、効果なし。
     次は、フェイド。読み込みが完了するまで画面を暗転させているのですが、これが記録の邪魔をしているとか? が、無関係。

     ああ、もっと怪しいヤツがいた。その名は、functions.php。WPPのトリガーであるthe_contentを横取りしちゃってるのかも?
  • remove_filter('the_content', 'wpautop');
  • remove_filter('the_content', 'wptexturize');
  •  この辺が怪しいのでコメントアウト。が、無関係。

     こうなったら、一旦すべてコメントアウト。すると統計が機能した!
     あとはシラミ潰しローラー作戦一人人海戦術
     1行ずつコメントアウトを解除していった結果、以下の2つが犯人と判明。
  • remove_action('wp_head', 'rsd_link');
  • remove_action('wp_head', 'wp_enqueue_scripts', 1);
  •  んー、何か理由があって記述したんだろうけど、外しても問題はないみたいなのでこれにて解決とします。二週間、疲れたよ……。

     ちなみに、各機能を調べてみました。
  • wp_enqueue_scripts
    スクリプトファイルを「重複しないように」また「適切な順番」で読み込むように制御してくれる関数。

  • rsd_link
    rsdのリンクを吐き出す関数。文字通りですね。

  •  というわけでお困りの方は、ご自分のテーマを見直してみると良いかもですね。

    11/3/2017 00:23 note web

    comments & TB (0)

    name

    trackback URL