2015-06-11 23 views
-1

我想調整Worpress在顯示之前生成的內容。是否可以在Wordpress內容上使用DOMDocument?

到目前爲止我看到的很多示例使用正則表達式來更改內容,即使它是不好的做法,並且不建議用正則表達式解析html。

我現在的想法是使用DOMDocument來解析和更改HTML。這是一個好主意,還是可以以任何方式打破內容的完整性?

下面是一些例子WordPress的我創建(它按比例縮小一半大小的視網膜顯示圖像)內容過濾:

function fancyContentParser($content) { 

    $dom = new DOMDocument(); 
    $dom->loadHTML($content); 

    $images = $dom->getElementsByTagName('img'); 

    foreach ($images as $image) { 

     $width = $image->getAttribute('width')/2; 
     $height = $image->getAttribute('height')/2; 
     $style = 'width: '.$width.'px; height: '.$height.'px'; 

     $image->setAttribute('style', $style); 

    } 

    return $dom->saveHTML(); 

} 

add_filter('the_content', 'fancyContentParser'); 

回答

1

的這個問題的答案很可能將是主要基於輿論..但我沒有看到任何問題。但是,爲什麼不改變寬度和高度屬性,而不是用style覆蓋它們?

foreach ($images as $image) { 

    $image->setAttribute('width', $image->getAttribute('width')/2); 
    $image->setAttribute('height', $image->getAttribute('width')/2); 

} 

此外,你可能可以做到這一點,而不DOM文檔...而只使用CSS(這是你在你的問題通過使用style反正屬性提出什麼)。你可以使用transform屬性:

img { 
    -webkit-transform: scale(0.5); 
      transform: scale(0.5); 
} 
+0

準確地說..這個問題的答案可能會主要是基於意見的。 – Deep

+0

當然,我可以調整寬度/高度屬性而不是風格,但這不是我的問題。 transfrom是一個廢話,因爲它會在轉換後的圖像周圍留下原始圖像大小的空白區域。 我也不認爲我的問題導致基於視角的答案。例如我剛剛發現DOMDocument在utf-8中遇到了麻煩,所以這是一個陷阱,這是我正在尋找的提示。 – nerdess

相關問題