Extrahiere image src aus einem Post und sende es an ein externes Formular

Ich habe eine Facebook-App erstellt , um Fotos von der Bild-URL mit Hilfe einiger Tutorials auf Facebook hochzuladen. Es benötigt eine Bild-URL und eine Beschreibung. Ich möchte einen Button “Upload auf Facebook” unter jedem “Bild” -Typ in WordPress veröffentlichen.

App Main Part zum Hochladen von Bildern –

getAccessToken(); $graph_url= "https://graph.facebook.com/me/photos?" . "url=" . urlencode($_POST["source"]) . "&message=" . urlencode($_POST['message']) . "&method=POST" . "&access_token=" .$access_token; $response=file_get_contents($graph_url); $json=json_decode($response); } catch (FacebookApiException $e) { error_log('Could not post image to Facebook.'); } } ?> 

  
Paste an image URL here:

Say something about this photo:


Wie kann ich Bildsrc dynamisch aus einem benutzerdefinierten Post-Typ (Image) extrahieren und src als source im Formular automatisch setzen. (Es gibt nur ein Bild in jedem Bildtyp Post)

Solutions Collecting From Web of "Extrahiere image src aus einem Post und sende es an ein externes Formular"

Es gibt keine integrierte Möglichkeit, ein image / image-src aus dem Post-Body zu extrahieren. Wenn die Bilder Anhänge sind, können Sie dies mit get_children oder WP_Query und wp_get_attachment_image_src .

 function get_image_src_from_content_101578($content) { global $post; $args = array( 'post_parent' => $post->ID, ); $images = get_children($args); foreach ($images as $img) { var_dump(wp_get_attachment_image_src($img->ID)); } } add_action('the_content','get_image_src_from_content_101578'); 

Sie könnten auch regex .

 function replace_image_link_101578($content) { $pattern = '||'; $content = preg_match($pattern,$content,$matches); var_dump($matches); return $content; } add_filter('the_content','replace_image_link_101578'); 

Letzteres ist möglicherweise weniger Arbeit für den Server, kann aber auch weniger zuverlässig sein. Wenn Sie Bilder eingebettet haben, die keine Anhänge sind, wird es Ihre einzige Wahl sein.

Ein Nicht-Hook-Beispiel, das nur das Bild- src Attribut zurückgibt, falls es gefunden wird.

 function replace_image_link_($content) { $pattern = '||'; $content = preg_match($pattern,$content,$matches); return (!empty($matches[1])) ? $matches[1] : ''; } 

get_children() ist keine zuverlässige Methode, um alle Bilder in einem Post post_parent , da post_parent der post_parent Spalte in der Tabelle wp_posts wird, welche Bilder zu einem Post gehören. Das Problem besteht darin, dass post_parent eines Bildes nur auf den Post zeigt, der dieses Bild zuerst verwendet hat.

Wenn andere Posts das gleiche Bild verwenden, wird get_children es nicht finden, wenn es auf diesem Post get_children wird. get_children ist Ihre Liste der Bilder unvollständig und enthält nur Bilder, die zum ersten Mal get_children wurden.