Wordpress定义变量插件

时间:2014-06-24 03:27:41

标签: php wordpress variables constants

我试图在Wordpress中为网站创建一个插件,用于练习和执行。在这个插件中会有各种各样的文件。我想将插件目录定义为常量,所以我使用:

define('CUSTOM_EDITING__URL', plugin_dir_url(__FILE__));

当我包括:

//FOLDERS
define('WIDGETS', CUSTOM_EDITING__URL . 'widgets/');
require_once(WIDGETS . 'widgets.php');

我能够访问文件widgets.php,但是当我在文件内部调用时:

echo CUSTOM_EDITING__URL;

我得到了CUSTOM_EDITING__URL。我想要http://www.example.com/widgets/widget.php

有人可以解释我错过的内容吗?

编辑:有关手头问题的更多信息。

现在我已经发现widgets.php不接受已定义的变量。例如......调用文件能够使用以下格式创建窗口小部件:

class Foo_Widget extends WP_Widget {
    // Content
} 

但是widgets.php文件无法解析找到WP_Widget。

2 个答案:

答案 0 :(得分:1)

所以这是我的答案。我没有任何实际的好文档来解释它。我复制了Akismet插件中的一些元素,以便按照我需要的方式成功运行。

define( 'CUSTOM_EDITING__URL', plugin_dir_url( __FILE__ ) );
define( 'CUSTOM_EDITING__DIR', plugin_dir_path( __FILE__ ) );


require_once( CUSTOM_EDITING__DIR . 'class.custom-editing-widget.php' );
require_once( CUSTOM_EDITING__DIR . 'class.custom-editing.php');



register_activation_hook( __FILE__, array( 'CustomEditing', 'plugin_activation' ) );
register_deactivation_hook( __FILE__, array( 'CustomEditing', 'plugin_deactivation' ) );

add_action( 'init', array( 'CustomEditing', 'init' ) );

在文件class.custom-editing.php中,我使用以下基本参数创建类:

class CustomEditing {

    private static $initiated = false;

    public function __construct(){
    }

    public static function init() {
        if ( ! self::$initiated ) {
            self::init_hooks();
        }
    }

    private static function init_hooks() {
        self::$initiated = true;
    }
}

这解决了我认为由激活挂钩创建的任何基本错误。如果有人可以用更好的方式解释这些部分,那将是值得赞赏的,但我不完全理解为什么这样做有效,而我没有做到。

答案 1 :(得分:0)

常量方法可能会有所帮助:

echo constant("CUSTOM_EDITING__URL");