2016-03-28 8 views
1

Wordpressのテーマ(Zerif Pro)を購入しましたが、今まで私はそれに感銘を受けていません。私たちのチームは、テーマが脆弱で、ハードコード設定が設定可能で、Wordpressの機能のいくつかを誤用しているため、ウェブサイトを正しく動作させるためにかなりのハッカーを追加する必要がありました(理想的にはテーマを破棄し、私達はこの時点でウェブサイトにあまりにも遠くに来ている)。Wordpress OpenGraphのメタデータやwp_headを無効にする

誤用されるものの1つは静的なフロントページです。テーマは確かに静的なフロントページを構築しますが、Wordpressが期待するように、「最新の投稿」ページの上に正しく表示されます。つまり、Wordpressの設定内で「正面ページに静的ページを表示する」オプションを選択すると、テーマが破られます。そのため、メインページをそのまま保ち、代わりに最新の投稿を含むダミーページを作成しました。

しかし、今のところ、メインページはカバーページであるにもかかわらず、何とかそれがブログページだと思っているため、他の問題(「この投稿を共有する」リンクが表示されます。最近は間違ったOpenGraph情報がありますが、これはこの質問に関するものです。

カバーページに埋め込まれたメタデータ(実際には最新の投稿ページであり、テーマによってカバーページに間違ったスタイルが適用されています)は、最新の投稿と同じです。私はそれがwp_head()によって生成されていると仮定していますが、このメタデータがどこから来ているのかを特定できません(テーマはwp_head()をオーバーライドしていないようで、ogメタデータを注入するSEOプラグインは使用していません)。

  • は、WPのプラットフォームを何とかしてみましょう(私はそうするロジックを十分に熟知していないよ)、このデータを除外する

    • オーバーライドwp_head():この時点で、ここで私が考えているソリューションですメインページがブログ投稿ではないことを知っている(これは、最新のブログ投稿から無関係なOpenGraphデータが取り除かれるのを防ぎます)。
    • "静的な"コンテンツを別の既存の最新の投稿ページではなく、プラグインを介してメタデータを制御することができます(このロジックがどこで行われたのか、このテーマが協力しているかどうかわからない)
    • OpenGraphメタデータが移入取得する場所を見つけて、それを

    を上書き誰かが問題を解決するに取り掛かるする方法を提案することができます(私は上記の4またはそれらの4のいずれか上の任意の指導よりもよりよい解決策を持っている場合、 私はそれを感謝します)。ページ

  • でWP
  • 記事のURL
  • Google Analyticsのダッシュボードからウィジェット
  • おすすめ画像をフィード
  • 簡単にTwitterにメールする

    • 問い合わせフォーム:それは助けている場合、ここでは、現在インストールされているすべてのプラグインです
    • SendGrid
    • シンプルなカスタムCSS
    • ソーシャル共有ボタンSupsystic
    • TCカスタムJavaScript
    • ウィジェットラングラー
    • Typecase WPクライアントのロゴカルーセル
    • WPide
  • +0

    最初にヘッダーに関連するheader.phpやテンプレート部分を調べる必要があります。作成するwp_head以外の機能はありますか? – Jevuska

    +0

    直後に 'wp_head()'と 'zerif_bottom_head_trigger()'を呼び出します。私は2つの要素の間に余分な要素を入れました。これは興味のあるメタデータ( 'og:title'、' og:description'など)が 'wp_head()'によって生成されていることをわかりました。しかし、テーマそのものはwp_headを定義したり、アクションを追加したりするものではなく、バニラwp_headにはあまり意味がないようです:https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-includes/general-templateにあります。php#L2428 –

    +1

    あなたはこの関数でwp_headをチェックすることができますので、どの関数がこれらの関数を呼び出すことができるのでしょうか?add_action( 'wp'、function(){global $ wp_filter; if(isset($ wp_filter ['wp_head']) ){echo '

    '; print_r($wp_filter['wp_head']); echo '
    ';}}); ' – Jevuska

    答えて

    1

    この回答は、そのコメントどのように説明しJevuskaの助けなし不可能でしたwp_headの内容を入手してください。何かについては、以前は完全にわかりませんでした。これらの手順は、私に悩まされているogロジックだけでなく、wp_headから不要なロジックを削除するために使用できます。ここで私は問題を解決するためにやったことです:ハッシュの巨大なダンプを表示するには、ページをリローデッド

    add_action('wp', function() { 
        global $wp_filter; 
        if (isset($wp_filter['wp_head'])) { 
         echo '<pre>'; 
         print_r($wp_filter['wp_head']); 
         echo '</pre>'; 
        } 
    }); 
    
    1. はJevuskaにより示唆されるように、のfunctions.phpには、次のコードを追加しました様々なwp_headアイテムを含むアイテムは、キーと値のペアとして表示され、キーは名前と値で表示され、より多くのデータを持つ配列になります。[wp_oembed_add_discovery_links] => Array

    2. すべてのキーを収集し、各エントリをfunctions.p次の形式でHP:remove_action('wp_head', 'wp_oembed_add_discovery_links')は、私もから他の多くのものをステップ1.

    3. リローデッドページから機能を削除し、ogメタデータが消えていたことを観察し、そうだった、約20の合計のエントリを持っていました<head>要素。違反している要素をすばやく絞り込むために、バイナリ検索を使用して要素の半分を削除し、効果があるかどうかを確認しました。 fifu_add_social_tags

    4. 他のすべての行を削除し、レンダリングからogタグを防ぐためのfunctions.phpでremove_action('wp_head', 'fifu_add_social_tags');ロジックを残す:4回の繰り返しの中で、私は犯人が見つかりました。

  • +0

    この回答を「受け入れる」とマークする必要があるかもしれません。同様の問題を抱えている人は、このサイトの検索でもっと簡単に見つけることができます。 :)あなたのプロジェクトで幸運。 – Jevuska

    +0

    投稿後2日以内に受け入れることができませんでした。 –

    関連する問題