0

別の開発者がテーマ内のファイルを操作せずに WordPress の function.php ファイルにコードを挿入するように作成したこのプラグインに問題がありました。ダッシュボード コントロールに関するいくつかの問題を解決する行を追加しましたif (!is_admin()) {が、wordpress.com に接続して Jetpack を有効にしようとすると、サイトの本文に次のエラー メッセージが書かれたサイトのフロント ページに移動します。

見つかりません、エラー 404 お探しのページは存在しません。サイトのホームページに戻って、探しているものが見つかるかどうかを確認してください。または、下の検索フォームを使用して検索してみてください。

このプラグインを無効にすると、Jetpack の有効化が機能するようになりましたが、問題の原因を知りたいです。コードの一部に関係していることは確かadd_action('init', 'check_user_logged_in');ですが、何に置き換えるかわかりません。init を wp_head に置き換えようとしましたが、ページの別のプラグインでスタイリングが壊れます。何か案は?これが以下のコードです。

<?php

/* Your code goes below here. */

ob_start();

function check_user_logged_in(){
  if (!is_admin()) {
    if ( is_user_logged_in() ) { ?>
      <style  type="text/css" media="screen">
      #theme-my-login-2 .widget-wrap .widget-title { display: block !important; }
      </style>
   <?php
    } else { ?>
      <style type="text/css" media="screen">
         table.sidebar_result{margin-top:-10px;}
      </style>
<?php 
    }
  }
}

add_action('init', 'check_user_logged_in');

/* Add Read More Link to Excerpts */
add_filter('excerpt_more', 'get_read_more_link');
add_filter( 'the_content_more_link', 'get_read_more_link' );

function get_read_more_link() {
    return '...&nbsp;<a href="' . get_permalink() . '">[Read&nbsp;More]</a>';
}

/* Your code goes above here. */
?>
4

1 に答える 1

0

この関数は、WordPressフェーズ (最も初期の読み込みフェーズの 1 つ) でcheck_user_logged_in()CSS スニペットが画面に出力されるため、WordPress Web サイトを確実に破壊するため、多くの愚かさを念頭に置いて作成されています。init

これにより、template_redirectフックからのリダイレクトが破棄され、ビューも破棄されます。私はおそらく、そのようなプラグインの作成者を信用しないでしょう。

ただし、これをアクションで追加するアプローチwp_headは非常に適切でした (アクションも使用できますwp_footer)。wp_register_style()スタイルはandでエンキューする必要があるため、それでもこれは悪いアプローチですwp_enqueue_style()

CSS コードがテーマを破壊している場合は、add_action 行を削除するか、必要に応じて CSS を変更します。

于 2016-12-15T19:46:56.140 に答える