远程获取WordPress主题版本

时间:2015-11-01 作者:Thomas W.

我正在使用wp_remove_get 获取WordPress主题样式内容(style.css) 然后获取主题版本号。但是,我不知道应该使用什么正则表达式来获取版本代码:

<?php 
    $response = wp_remote_get( \'http://example.com/wp-content/themes/theme-name/style.css\' );
    if( is_array($response) ) {
        $content = $response[\'body\']; // Remote get the file content. Now get the version number in $content.
    }
?>
另外,我将在同一个页面上获得大约20个主题(站点)的版本,我需要做什么来减少页面负载?

谢谢

3 个回复
SO网友:Mateusz Hajdziony

请退房this answer to a similar question 关于regex,用于从主题的style.css.

当谈到问题的第二部分时,如果您关心页面加载时间,您可以始终使用AJAX分别获取每个主题的信息。您将显示列出了所有主题的页面,但首先没有它们的版本号。加载页面后,可以为每个主题向wp admin发送AJAX请求,在后端处理信息(获取主题的CSS,运行regex查找版本号),并用主题的版本号制定响应。在页面上显示版本号,您就完成了!对列表中的每个主题重复。

SO网友:Scriptonomy

您可以像这样获取版本号:

preg_match(\'/[\\n\\r].*Version:\\s*([^\\n\\r]*)/\', $content, $matches);
$ver  = $matches[1];

SO网友:Ciprian

你能控制主题吗?

如果这样做,可以在主题内创建一个名为version.php 例如,并添加以下代码-

<?php
header("Access-Control-Allow-Origin: https://www.example.com");

$parse_uri = explode(\'wp-content\', $_SERVER[\'SCRIPT_FILENAME\']);
require $parse_uri[0] . \'wp-load.php\';

$currentTheme = wp_get_theme();

echo json_encode($currentTheme->get(\'Version\'));
您还可以获取主题名称-

echo json_encode($currentTheme->get(\'Version\'));

然后可以使用PHP或(更好的)JavaScript访问version.php 并获取主题版本。使用承诺或async()/await() 在同一页上获取数百个主题。

相关推荐