子文件夹中路径wordpress的问题



我将内核文件wordpress移到子文件夹
现在有一个文件夹"content"one_answers";kernel"在根遇到了一些问题
有些命令只适用于子文件夹"内核";例如

我使用这个函数来添加名称脚本和样式的更改时间

function put_modified_time_version($src, $baseUrl){
if ($src && strpos($src, $baseUrl) === 0) {
$newSrc = remove_query_arg('ver', $src);
$path = substr($newSrc, strlen($baseUrl));
$path = wp_parse_url($path, PHP_URL_PATH);
if ($mtime = @filemtime(untrailingslashit(ABSPATH) . $path)) {
$src = add_query_arg('ver', $mtime, $newSrc);
}
}
return $src;
}
add_filter('style_loader_src', 'modified_time_version_style', 15, 1);
function modified_time_version_style($src) {
return ($src) ? put_modified_time_version($src, wp_styles()->base_url) : $src;
}
add_filter('script_loader_src', 'modified_time_version_script', 15, 1);
function modified_time_version_script($src) {
return ($src) ? put_modified_time_version($src, wp_scripts()->base_url) : $src;
}

这只适用于"内核"文件夹


函数从文件夹"content">
我认为$url = substr($newSrc, strlen($baseUrl));有问题
告诉我如何正确地指定它,以便一切都能正常工作?

如果ABSPATH没有返回正确的东西,那么尝试其他一些。如果你想要一个与当前文件相关的不同的路径,那么在一个具有正确路径的文件中定义一个常量(例如主插件文件)并使用该常量。例如在main plugin.php

define('INTERESTING_PATH', ABSPATH);
define('INTERESTING_PATH2', ABSPATH . '/content/');
define('INTERESTING_PATH3', WP_CONTENT_DIR);
define('SITE_ROOT', str_replace('wp-content', '', WP_CONTENT_DIR));
define('PLUGIN_STUFF', plugin_dir_path(__FILE__));

那么在代码的其他地方你可以使用常量。例如

$fp = fopen( INTERESTING . "sitemap.xml", 'w' );

如果您需要在层次结构中更高的目录,则使用dirname($path)。例如:define('WHATEVER', dirname(dirname(__FILE__)));define('WHATEVER', dirname(dirname(__FILE__)) . '/content/');

就像我上面写的
在将核心文件传输到子文件夹时发现一个奇怪的问题例如

函数,为js和CSS添加版本控制
无论核心文件的位置如何,该函数都会添加版本控制问题是在$baseURL中,也许它会对某人有用

function version_asset( $src, $handle, &$deps ) {
$path = parse_url( $src, PHP_URL_PATH );
foreach ( $deps->default_dirs as $dir ) {
if ( 0 === strpos( $path, $dir ) ) {
return $src;
}
}
$version = get_file_version( $src );
$deps->registered[ $handle ]->ver = $version;
return add_query_arg( 'ver', $version, $src );
}
add_filter( 'script_loader_src', __NAMESPACE__ . 'version_script', 10, 2 );
function version_script( $src, $handle ) {
global $wp_scripts;
return version_asset( $src, $handle, $wp_scripts );
}
add_filter( 'style_loader_src', __NAMESPACE__ . 'version_style', 10, 2 );
function version_style( $src, $handle ) {
global $wp_styles;
return version_asset( $src, $handle, $wp_styles );
}
function get_file_version( $url ) {
$content_url = content_url();
$filepath    = str_replace( $content_url, WP_CONTENT_DIR, $url );
$filepath    = explode( '?', $filepath );
$filepath    = array_shift( $filepath );
if ( ! file_exists( $filepath ) ) {
return;
}
try {
$timestamp = filemtime( $filepath );
} catch ( Exception $e ) {
return;
}
return $timestamp ? (string) $timestamp : null;
}

最新更新