私がやろうとしているのは、私がimage_send_to_editor
の出力を編集して、画像を囲むアンカーに特定の class & rel を持たせることができるようにすることです。
私は基本的に投稿に挿入される各画像をギャラリーに入れたりプラグインを使用したりすることなくfancyboxに対応させることを計画しています。
私はこれまでに持っているものをヘレスが、私は空白を埋める助けが必要です...
<?php
add_filter( 'image_send_to_editor', 'fancy_capable', 10, 7);
function fancy_capable($html, $id, $alt, $title, $align, $url, $size ) {
// not sure what to do here???
return "$html";
}
?>
ここでの最善の策は、jQueryを使用して画像にリンクしているリンクを取得し、それをfanceyboxを使用するように指示することです。
jQuery(document).ready(function($){
$('a[href$="jpg"], a[href$="png"], a[href$="jpeg"]').fancybox();
});
あなたがこれをあなたの投稿コンテンツ領域のためだけに機能させたい場合はこれを使用してください:
$('.post-content a[href$="jpg"], .post-content a[href$="png"], .post-content a[href$="jpeg"]').fancybox();
HTMLの親要素がコンテンツ領域をラップするものであれば、.post-contentを置き換える必要があります。
これは実際には非常に簡単です... return $html;
はあなたが送るものが何であれエディタに戻ることになるでしょう…それであなたは次のようなことをすることができます:
<?php
add_filter( 'image_send_to_editor', 'fancy_capable', 10, 7);
function fancy_capable($html, $id, $alt, $title, $align, $url, $size ) {
$url = wp_get_attachment_url($id); // Grab the current image URL
$html = '<a href="' . $url . '" class="fancybox" rel="your-rel"><img src="..." /></a>';
return $html;
}
?>
また、HTMLの代わりにショートコード(ユーザーにとってより使い慣れているかもしれません)を挿入してから、ショートコードにバックエンドでの作業を任せることもできます。
<?php
add_filter( 'image_send_to_editor', 'fancy_capable', 10, 7);
function fancy_capable($html, $id, $alt, $title, $align, $url, $size ) {
$url = wp_get_attachment_url($id); // Grab the current image URL
$html = '[image src="' . $url . '" fancybox="true" /]';
return $html;
}
?>
HTMLにクラスを追加するための正規表現の使用例がいくつかあります。これは私のために働く:
add_filter('image_send_to_editor', 'add_class_to_image', 10, 8);
以下の機能を持ちます。
function add_class_to_image($html, $id, $caption, $title, $align, $url, $size, $alt='') {
$classes_to_add = 'media-img';
if (preg_match('/<a.? class=".?">/', $html))
$html = preg_replace('/(<a.? class=".?)(".\?>)/', '$1 ' . $classes_to_add . '$2', $html);
else
$html = preg_replace('/(<a.*?)>/', '$1 class="' . $classes_to_add . '">', $html);
return $html;
}
それから、私のstyle.cssファイルで私はa.media-img
セレクターをスタイルしました。