5

私はしばらくの間このエラーと戦ってきました。エラーは関数のどこかにあり、同じ行で変数を再宣言できないとphpが言っています...奇妙です。どんな助けでも素晴らしいでしょう。

致命的なエラー:/home/bp-member-login-redirect/bpでbp_block_admin_init()(以前は/home/bp-member-login-redirect/bp-member-login-redirect-loader.php:31で宣言されていました)を再宣言できません-31行目のmember-login-redirect-loader.php

29〜31行目

// make sure buddypress is installed
function bp_block_admin_init() {
    require_once( dirname( __FILE__ ) . '/bp-member-login-redirect-core.php' );
}

実際に関数を呼び出す行(コードにこれらの行がある場合とない場合でエラーが発生します:

if ( defined( 'BP_VERSION' ) ) {
    bp_block_admin_init();
} else {
    add_action( 'bp_init', 'bp_block_admin_init' );
}
4

5 に答える 5

9

require_onceを使用して、bp-member-login-redirect-loader.phpファイルをダブルロードしないようにしてください。

require_once '/home/bp-member-login-redirect/bp-member-login-redirect-loader.php';
于 2010-07-26T06:24:49.860 に答える
5

register_activation_hook()問題は、プラグインがロードされたときに呼び出されるWordPress関数にありました。私の場合、ファイルはWordPressをロードせずに含まれていました。関数を削除すると、エラーは発生しなくなりました。

于 2010-07-29T16:49:06.983 に答える
2

bp_block_admin_init2回定義されているようです。このコードはどのファイルに表示されますか?別のファイルがこのファイルを複数回require-ingまたは-ingしていますか?include

于 2010-07-26T06:25:59.733 に答える
2

ほとんどの場合、bp-member-login-redirect-loader.php複数回含めています。たとえば、問題を再現するには、次の方法で十分です。

test.php

<?php
function foo() {}
?>

test2.php

<?php
include('test.php');
include('test.php'); // Double definition of foo() on test.php:2
?>
于 2010-07-26T06:26:38.360 に答える
1

機能bp_block_admin_init()が既に存在するかどうかを確認してください。

if(!function_exists('bp_block_admin_init'){
  function bp_block_admin_init(){
    //....
  }
}
于 2010-07-26T06:32:21.767 に答える