Plugin của tôi sử dụng mã sau đây để tham chiếu một tệp, nhưng tôi đã đọc WP_PLUGIN_DIR
sẽ không hoạt động nếu người dùng đổi tên thư mục plugin mặc định. Tôi cũng muốn thay thế /location-specific-menu-items/
bằng một tham chiếu đến thư mục plugin hiện tại.
$gi = geoip_open(WP_PLUGIN_DIR ."/location-specific-menu-items/GeoIP.dat", GEOIP_STANDARD);
Làm thế nào tôi có thể viết lại cái này để làm cho nó hoạt động bất kể tên của thư mục plugin WP và thư mục plugin cụ thể?
BIÊN TẬP:
Đây là giải pháp làm việc cuối cùng của tôi theo đầu vào của mọi người. Cảm ơn nhiều!
$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;
}