こんにちは、個々の画像リンクとして表示するのではなく、jquery を追加して画像を循環させることにより、wordpress でデフォルトのギャラリーを操作しようとしています。ただし、変更するファイルが見つからないようです-デフォルトのギャラリーをカスタマイズする方法を見つけたいです(できればプラグインなしで)..どんなアイデアでも大歓迎です。
質問する
252 次
1 に答える
0
デフォルトのギャラリー ショートコードをフィルタリングして、独自のショートコード関数に置き換えることができます。
add_filter( 'post_gallery', 'your_gallery_func', 10, 2);
your_gallery_func
デフォルトのギャラリーを模倣して、atts を抽出する必要があります。
/*
* Extract default gallery settings
*/
extract(shortcode_atts(array(
'order' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post->ID,
'itemtag' => 'dl',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'size' => 'thumbnail',
), $attr));
次に、投稿に添付されたすべての画像を取得するか、何もない場合は返す必要があります。
$attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
if ( empty( $attachments ) )
return '';
次に、変数に代入して出力したいコードを記述し、関数の最後でそれを返します。
これはほんの一例です:
/**
* Open the gallery <div>
*/
$output .= '<div id="gallery-'.$id.'" class="content gallery gallery-'.$id.'">'."\n";
$output .= '<div id="thumbs" class="navigation">'."\n";
/**
* Loop through each attachment
*/
foreach ( $attachments as $id => $attachment ) :
/**
* Open each gallery item
*/
$output .= "\n\t\t\t\t\t<li class='gallery-item'>";
$output .= '<a class="thumb" href="' . $link[0] . '" title="' . $title . '">';
$output .= '<img src="' . $img[0] . '" alt="' . $title . '" title="' . $title . '" />';
$output .= '</a>';
/**
* Close individual gallery item
*/
$output .= "\n\t\t\t\t\t</li>";
endforeach;
/**
* Close gallery and return it
*/
$output .= '</ul><!--.thumbs-->'."\n";
$output .= '</div><!--#gallery-wrap-->'."\n";
return $output;
于 2012-05-29T09:03:29.333 に答える