Я хочу добавить div вокруг каждого изображения в своих сообщениях, чтобы иметь возможность добавлять значки социальных сетей при наведении курсора.
Для этого я использовал этот полезный код, которым поделился Рик Санчес: Как добавить разделитель вокруг каждого изображения в WordPress?
function breezer_addDivToImage( $content ) {
// A regular expression of what to look for.
$pattern = '/(<img([^>]*)>)/i';
// What to replace it with. $1 refers to the content in the first 'capture group', in parentheses above
$the_url = the_permalink();
$replacement = '<div class="imgWrap">
$1
<div class="imgDescription">
<div class="theShareLinks">
<img src="http://localhost/mysite/wp-content/uploads/2014/08/dfc2.png" />
<a href="http://twitter.com/share?text=&url='.get_the_permalink() .'" class="img-twitter" title="Share on Twitter" target="_blank"></a>
<a href="http://www.facebook.com/sharer.php?u='.get_the_permalink() .'?" class="img-facebook" title="Share on Facebook" target="_blank" onclick="window.open(this.href, \'newwin\', \'width=500, height=200\'); return false;" ></a>
<a href="https://plus.google.com/share?url='.get_the_permalink() .'" class="img-google" title="Share on Google" target="_blank"></a>
</div>
</div>
</div>';
// run preg_replace() on the $content
$content = preg_replace( $pattern, $replacement, $content );
// return the processed content
return $content;
}
add_filter( 'the_content', 'breezer_addDivToImage' );
С помощью этого кода я теперь могу отображать значки общего доступа над каждым изображением (Twitter, Google & фейсбук) но моя проблема в том, что в общедоступном изображении всегда находится первое изображение поста, а не изображение, к которому привязан (например, второе, третье и т. д.).
У вас есть идеи, как я мог бы сделать это на основе кода, предоставленного Риком? Как можно получить извлеченное изображение?
Большое спасибо за вашу помощь!
Я работал над кодом выше, и теперь я могу получить URL каждого изображения в сообщении в таблице соответствий. Это позволит получить каждый URL-адрес изображения для кнопки общего доступа в социальной сети, но теперь я заблокирован из-за того, как использовать preg_replace с переменной замены, которая будет отличаться для каждого изображения, так как он будет получать URL-адрес изображения, сохраненный в таблице соответствий. Ты знаешь, как я могу это сделать?
Для получения каждого URL изображения я использовал этот код:
// search for images inside content and return images URLs
$count = preg_match_all('/<\s*img [^\>]*src\s*=\s*[\""\']?([^\""\'>]*)/i' , $content, $matches);
// now all my images url are in $matches[1][x]
Других решений пока нет …