我的插件使用以下代码引用文件,但WP_PLUGIN_DIR
如果用户重命名默认插件文件夹,则无法读取。我还想替换/location-specific-menu-items/
为对当前插件文件夹的引用。
$gi = geoip_open(WP_PLUGIN_DIR ."/location-specific-menu-items/GeoIP.dat", GEOIP_STANDARD);
无论WP插件目录和特定插件文件夹的名称如何,我如何都可以重写它以使其工作?
编辑:
这是每个人的输入后我最终的工作解决方案。非常感谢!
$GeoIPv4_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv4.dat';
$GeoIPv6_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv6.dat';
if (!filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === FALSE) {
if ( is_readable ( $GeoIPv4_file ) ) {
$gi = geoip_open( $GeoIPv4_file, GEOIP_STANDARD );
$user_country = geoip_country_code_by_addr($gi, $ip_address);
geoip_close($gi);
}
} elseif (!filter_var($ip_address, FILTER_VALIDATE_IP,FILTER_FLAG_IPV6) === FALSE) {
if ( is_readable ( $GeoIPv6_file ) ) {
$gi = geoip_open( $GeoIPv6_file, GEOIP_STANDARD );
$user_country = geoip_country_code_by_addr($gi, $ip_address);
geoip_close($gi);
}
} else {
$user_country = "Can't locate IP: " . $ip_address;
}
你在哪里读的..?如果用户重命名了插件文件夹,我认为他们也必须确保重新定义WP_PLUGIN_DIR ...
—
majick
啊,我误会了。问题在于插件并不总是存在于默认插件目录中。这是我读过的引文:“不要使用WP_PLUGIN_URL或WP_PLUGIN_DIR-插件可能不在插件目录中。”
—
j8d