web-dev-qa-db-ja.com

フルサイズ画像へのサムネイルのリンク

私は自分のブログの関数(getImage)を使ってループ内のサムネイルを呼び出します(投稿の最初の画像を呼び出します)が、投稿へのリンクの代わりに、サムネイルをそのフル画像のsrcにリンクしたいと思います。

機能はこれです:

function getImages($num) {
global $more;
$more = 1;
$link = get_permalink(); -> NO IDEA IF HAS ANY SENSE BUT I ALREADY TRIED TO CHANGE THIS ONE TO GET_ATTACHMENT BUT NO LUCK
$content = get_the_content();
$count = substr_count($content, '<img');
$start = 0;
for($i=1;$i<=$count;$i++) {
$imgBeg = strpos($content, '<img', $start);
$post = substr($content, $imgBeg);
$imgEnd = strpos($post, '>');
$postOutput = substr($post, 0, $imgEnd+1);
$postOutput = preg_replace('/width="([0-9]*)" height="([0-9]*)"/', '/width="150"/',$postOutput);
$postOutput = preg_replace('/alignright/', 'aligncenter',$postOutput);
$image[$i] = $postOutput;
}
if(stristr($image[$num],'<img')) { echo '<a href="'.$link.'">'.$image[$num]."</a>"; }
$more = 0;}

誰かがいくつか手がかりを持っていますか私はこれを行うことができますか?またはこれを達成するための他の機能?

ありがとう

3
nessie

単にwp_get_attachment_url($GLOBALS['post']->ID);の代わりにget_permalink();を使う

1
kaiser

確かに、だからここに私がやったことです:私はこの他の機能を追加しました

function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];

  if(empty($first_img)){ //Defines a default image
    $first_img = "/images/default.jpg";
  }
  return $first_img;
}

そして、getimages関数の$ link行でそれを呼び出します。

$link = catch_that_image();

厄介なので、私はあなたの提案を試してみて、それらのいずれかがうまくいくかどうかを確認します、どうもありがとう。

1
nessie