플러그인은 다음 코드를 사용하여 파일을 참조하지만 읽었습니다. 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;
}