2016-09-30 2 views
1

Ich möchte the_content_rss in WordPress aktualisieren, damit es feedburner passen würde. Es müsste jedes img-Tag finden, ob es eine Breite und Höhe hat. Wenn sie größer als 600 sind, sollten sie auf 600 reduziert werden. Wenn sie nicht gesetzt sind, dann sollte die Breite auf 600 eingestellt werden. Ich dachte daran, etwas von dem Code here zu verwenden, aber ich steckte ein bisschen fest, ich würde mich freuen Hilfe bei der Reparatur. FragenGröße ändern img Tags in einem Wordpress-Feed

:

  1. Funktioniert es?
  2. Wie kann es herausfinden, ob die Breite null ist - und in welchem ​​Fall, um es hinzuzufügen?

    <?php 
    function feedburner_img_resize($the_content) { 
    // Create a new istance of DOMDocument 
    $post = new DOMDocument(); 
    // Load $the_content as HTML 
    $post->loadHTML($the_content); 
    // Look up for all the <img> tags. 
    $imgs = $post->getElementsByTagName('img'); 
    
    // Iteration time 
    foreach($imgs as $img) {  
    
        // if width is smaller than 600 - no need to continue 
        $width = $img->getAttribute('width'); 
        if($width < 600) continue; 
    
        $img->removeAttribute('width'); 
        $img->setAttribute('width', 600); 
        $img->removeAttribute('height'); // so the image is not distorted 
    }; 
    
    return $post->saveHTML(); 
    } 
    
    add_filter('the_content_rss', 'feedburner_img_resize'); 
    ?> 
    
+0

Verwenden Sie Javascript? –

+0

Ich muss es mit PHP ändern, um zu aktualisieren add_filter ... –

+0

Ich bin nicht wirklich vertraut mit WordPress, aber Sie können eine Ajax-Anfrage machen und dann in PHP und Add_filter() übergeben –

Antwort

1

In function.php die folgende Funktion:

function aq_resize($url,$width,$height=null,$crop=null,$single=true){ 
    $up_info=wp_upload_dir(); 
    $up_dir=$up_info['basedir']; 
    $up_url=$up_info['baseurl']; 
    if (strpos($url,home_url()) === false){return false;} 
    $rel_path = str_replace($up_url, '', $url); 
    $img_path = $up_dir . $rel_path; 
    if (!file_exists($img_path) OR ! getimagesize($img_path)){return false;} 
    $info = pathinfo($img_path); 
    $ext = $info['extension']; 
    list($orig_w,$orig_h) = getimagesize($img_path); 
    $dims = image_resize_dimensions($orig_w, $orig_h, $width, $height, $crop); 
    $dst_w = $dims['4']; 
    $dst_h = $dims['5']; 
    $suffix="{$dst_w}x{$dst_h}"; 
    $dstrel=str_replace('.'.$ext,'',$rel_path); 
    $dest="{$up_dir}{$dstrel}-{$suffix}.{$ext}"; 
    if($width >= $orig_w) { 
     if(!$dst_h) : 
      $img_url=$url; 
      $dst_w=$orig_w; 
      $dst_h=$orig_h; 

     else : 
      if(file_exists($dest) && getimagesize($dest)) { 
       $img_url="{$up_url}{$dstrel}-{$suffix}.{$ext}"; 
      } 
      else { 
       $resized=resize_image($img_path,$width,$height,$crop); 
       $resized_rel=str_replace($up_dir,'',$resized); 
       $img_url=$up_url.$resized_rel; 
      } 
     endif; 
    } 
    elseif(file_exists($dest) && getimagesize($dest)) { 
     $img_url="{$up_url}{$dstrel}-{$suffix}.{$ext}"; 
    } 
    else { 
     $resized=resize_image($img_path,$width,$height,$crop); 
     $resized_rel=str_replace($up_dir,'',$resized); 
     $img_url=$up_url.$resized_rel; 
    } 

    if($single) { 
     $image = $img_url; 
    } else { 
     $image = array (
      0 => $img_url, 
      1 => $dst_w, 
      2 => $dst_h 
     ); 
    } 
    return $image; 
} 

In einem Ort, wo die Notwendigkeit Abschluss Miniaturen, die folgende schreiben, die Größe der Thumbnails auf der rechten Seite für Sie zu ändern :

<img src="<?php echo aq_resize(first_img(),180,130,true)?> 
Verwandte Themen