私はいくつかのチュートリアルの助けを借りて画像のURLからFacebookに写真をアップロードするために Facebookアプリ を作成しました。画像のURLと説明が必要です。 WordPressのすべての「画像」タイプの投稿の下に「Facebookにアップロード」ボタンを配置します。
画像をアップロードするアプリ本体 -
<?php
if(isset($_POST["source"]))
{
try {
$access_token=$facebook->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.');
}
}
?>
<form enctype="multipart/form-data" action=" " method="POST">
Paste an image URL here:
<input name="source" type="text"><br/><br/>
Say something about this photo:
<input name="message"
type="text" value=""><br/><br/>
<input type="submit" value="Upload" class="btn btn-primary"/><br/>
</form>
カスタムの投稿タイプ(Image)から動的に画像srcを抽出し、フォーム内で自動的にsrcをsource
として設定する方法を教えてください。 (各画像タイプの投稿には1つの画像しかありません)
投稿本文からimage/image-srcを抽出するための組み込みの方法はありません。画像が添付ファイルの場合は、get_children
またはWP_Query
、および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');
regex
を使うこともできます。
function replace_image_link_101578($content) {
$pattern = '|<img.*?src="([^"]*)".*?/?>|';
$content = preg_match($pattern,$content,$matches);
var_dump($matches);
return $content;
}
add_filter('the_content','replace_image_link_101578');
後者のはサーバーにとっては動作が遅くなる可能性がありますが、信頼性も低下する可能性があります。添付ファイルではない画像が埋め込まれている場合は、それが唯一の選択肢になります。
見つかった場合、image src
属性のみを返す、フック以外の例。
function replace_image_link_($content) {
$pattern = '|<img.*?src="([^"]*)".*?/?>|';
$content = preg_match($pattern,$content,$matches);
return (!empty($matches[1])) ? $matches[1] : '';
}
get_children()
は、投稿に含まれる画像を判断するためにpost_parent
テーブルのwp_posts
列を使用するため、投稿内のすべての画像を取得するための信頼できる方法ではありません。問題は、画像のpost_parent
が最初がこの画像を使った投稿のみを指すことです。
他の投稿が同じ画像を使用している場合、その投稿で実行してもget_children
はその画像を見つけられません。そのため、あなたの画像リストは不完全になり、最初に添付された画像のみを含みます。