2017-01-20 75 views
0

我不是一個專業人士,但我試圖使用WordPress的webp圖像。替換特定目錄內的文件擴展名

我有一個名爲Rj Webp Converter的插件,它將圖像轉換爲webp格式,然後使用此函數將jpg,jpeg和png等擴展替換爲webp。

function callback($buffer) { 
    if(!is_admin() && $GLOBALS['pagenow'] != 'wp-login.php') { 
     $buffer = str_replace('.jpg','.webp',$buffer); 
     $buffer = str_replace('.jpeg','.webp',$buffer); 
     $buffer = str_replace('.png','.webp',$buffer); } 
    return $buffer; } 
function buffer_start() { ob_start("callback"); } 
function buffer_end() { ob_end_flush(); } 
add_action('after_setup_theme', 'buffer_start'); 
add_action('shutdown', 'buffer_end'); 

但有一個問題。 上面的代碼替換每個圖像文件。 我想替換隻在wp-content/uploads/...目錄內的文件。

任何幫助表示讚賞。 :)

回答

0

這應該工作。

正則表達式

<?php 
$re = '/(.*(?<=\.)(?:jpg|jpeg|png)(?=$))/m'; 
$str = 'test.jpg 
testing.png 
test.jpeg'; 

preg_match_all($re, $str, $matches); 

// Print the entire match result 
print_r($matches); 
?> 

PHP,就應該替換$文件名匹配$使用的foreach。

function replace_extension($filename, $new_extension) { 
    $info = pathinfo($filename); 
    return $info['filename'] . '.' . $new_extension; 
} 
相關問題