您可以使用读取服务器上的数据file_get_contents()
. 如果要确保文件存在且可读,请使用is_readable()
. 你真的不需要使用trailingslashit()
在本例中,因为您自己正在构建URI。
// path to file under current theme
$json_file = get_template_directory() . \'/inc/includes/acf-fonticonpicker/icons/selection.json\';
// make sure the file exists and is readable
if ( is_readable( $json_file ) ) {
// pull the data but don\'t give an error if there is a problem
if ( ! empty ( $json_content = @file_get_contents( $json_file ) ) ) {
// convert to an array
$json_array = json_decode( $json_content, true );
} else {
// show error message here
}
}
不幸的是
file_get_contents()
可能被标记入
Theme Check.
文件系统很有趣,如果你知道它的存在,那么有可能/
和\\
有时需要在路径中交换。
// BEFORE
// /vagrant/site/wp-content/themes/twentysixteen/inc/includes/acf-fonticonpicker/icons/selection.json
$json_file = str_replace(\'/\', \'\\\\\', $json_file);
or
$json_file = str_replace(\'/\', \'\\\\\\\\\', $json_file);
// AFTER
// \\vagrant\\site\\wp-content\\themes\\twentysixteen\\inc\\includes\\acf-fonticonpicker\\icons\\selection.json
另一种方法是通过url访问。
// url of file
$json_file = get_template_directory_uri() . \'/inc/includes/acf-fonticonpicker/icons/selection.json\';
// request the file
$response = wp_remote_get( $json_file );
try {
// Note that we decode the body\'s response since it\'s the actual JSON feed
$json = json_decode( $response[ \'body\' ], true );
} catch( Exception $ex ) {
$json = NULL;
}