我正在构建一个Wordpress插件(结构化为Singleton),当激活时,会插入三个新的WooCommerce端点(每个端点都存储在一个包含端点类的单独文件中)。最后,调用强制flush_rewrite_rules()
。刷新必须在发生后插入三个端点,或者在访问时端点将为404。
我想避免激活4个单独的插件(我的插件+ 3个端点插件)。如果可能的话,只需要一个插件激活就可以了。
到目前为止:
我的插件激活正常,端点会在视觉上显示“'在导航中确定,但访问时 404。,需要手动刷新。
关键问题是:
include
?插件顶部?在__construct
里面?或者在插件之后?flush_rewrite_rules()
内拨打register_activation_hook()
似乎无法修复404ing端点。这是我抽象的代码:
/* Include endpoint files here? */
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint1.php');
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint2.php');
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint3.php');
class My_Plugin {
private $endpoint1 = null;
private $endpoint2 = null;
private $endpoint3 = null;
private static $instance;
public static function getInstance() {
if (self::$instance == NULL) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {
/*Call the endpoint classes here? */
$this->$endpoint1 = new Endpoint1();
$this->$endpoint1 = new Endpoint2();
$this->$endpoint1 = new Endpoint3();
}
public static function install() {
flush_rewrite_rules();
}
} /*End Class*/
My_Class::getInstance();
/*Flush rewrite rules here? */
register_activation_hook( __FILE__, array( 'My_Plugin', 'install' ) );
任何帮助表示赞赏< 3