所以我正在为一个客户开发一个Wordpress(4.3.1)插件,一切都进展顺利,直到有时间将插件设置为生产。
请记住,我遗憾地无法访问服务器配置,但我确信生产和测试服务器应该是相同的。
我们在生产服务器上测试插件时发现的是,除非用户登录,否则插件不会运行(这是一个很大的问题,因为此站点的用户无法登录)。
我首先想到的只是没有加载的过滤器所以我尝试将PHP_INT_MAX添加到最重要的过滤器优先级参数而没有任何运气。
请注意,如果您已登录,插件仍然可以正常运行,因此我认为它必须与Wordpress处理和加载插件的方式有关。
有没有人对这样的问题有很好的洞察力,因为我的谷歌搜索一次又一次没有结果。
这是我的插件加载文件的样子:
// First things first no access from the outside, please!
if (!defined('ABSPATH'))
exit;
// Make things easier with a proper separator
define('DS', DIRECTORY_SEPARATOR);
// Where am I?
$pluginPath = plugin_dir_path( __FILE__ );
// Add required files, thank you
require_once( $pluginPath . 'Admin' . DS . 'class-pluginAdmin.php');
require_once( $pluginPath . 'Includes' . DS . 'class-pluginUser.php');
// Instantiate OOP handlers
$ictph = new pluginUser();
$ictpah = new pluginAdmin();
/*
* Finally lets add our stuff to WP!
* This is where we define ALL short codes, actions and filters(if any)!
*/
// SHORT CODES
add_shortcode('ctp_frontpage_login', array($ictph, 'getFrontpageLink'));
// ACTION
// Add custom CSS
add_action('init', array($ictph, 'setCustomCss'));
// Create Session Handling
add_action('init', array($ictph, 'startIctpSession'), 1);
add_action('wp_login', array($ictph, 'endIctpSession'));
add_action('wp_logout', array($ictph, 'endIctpSession'));
add_action('parse_request', array($ictph, 'ictpPluginParseRequest'));
add_action('query_vars', array($ictph, 'ictpPluginQueryVars'));
add_action('admin_menu', array($ictpah, 'buildAdminPanel'));
// FILTERS
add_filter('the_content', array($ictph, 'addLoginToContent'), 20);
答案 0 :(得分:0)
看起来像PHP_INT_MAX不是那种方式去我解决它只需从19及以上的过滤器。