<p>次のコードを使用して site_URL と wp_redirect を変更してみました。 </p>
<pre class="brush:php;toolbar:false;"><?php
add_filter( 'site_url', 'my_prefix_site_url', 10, 2 );
add_filter( 'wp_redirect', 'my_prefix_wp_redirect' );
function my_prefix_site_url( $url, $scheme ) {
return my_prefix_modify_url( $url, $scheme );
}
関数 my_prefix_wp_redirect( $url ) {
return my_prefix_modify_url( $url, null );
}
function my_prefix_modify_url( $url, $scheme = null ) {
$current_url = isset( $_SERVER['PHP_SELF'] ) ? sanitize_text_field( wp_unslush( $_SERVER['PHP_SELF'] ) ) : '';
if ( ! strpos( $current_url, 'wp-admin' ) && ! is_user_logged_in() ) {
戻る '/';
}
$url を返します。
}
</pre>
<p>しかし、次のエラーが発生しました。 、ファイルには is_user_logged_in() 関数が含まれています。そこで、次のようにコードに組み込みました。 </p><p><strong></strong><strong></strong><strong></strong>< ;/p>
<pre class="brush:php;toolbar:false;">if ( ! function_exists( 'is_user_logged_in' ) ) {
require_once ABSPATH . WPINC . '/pluggable.php';
}
</pre>
<p>このファイルをインクルードした後、コードは正常に動作しますが、他の一部のプラグインはプラグイン可能な関数をオーバーライドできないため、このファイルと競合します。 </p><p>短い質問: pluggable.php をロードする前に、ユーザーがログインしていることを wp_redirect レベルで確認するにはどうすればよいですか。 </p><p>ご回答いただきありがとうございます。 </p>
このコードの実際の目的が何なのかはよくわかりません。正しく理解すれば、いくつかの点が壊れると思いますが、文字通りの質問としては、独自の関数、つまり Can を作成するだけです。
is_user_logged_in 関数は、デフォルト バージョンでは複雑ではありません:
リーリーそして
リーリーwp_get_current_user
もプラグ可能ですがシンプルです:だから、次のように書くだけです:
リーリー