1

こんにちは、個々の画像リンクとして表示するのではなく、jquery を追加して画像を循環させることにより、wordpress でデフォルトのギャラリーを操作しようとしています。ただし、変更するファイルが見つからないようです-デフォルトのギャラリーをカスタマイズする方法を見つけたいです(できればプラグインなしで)..どんなアイデアでも大歓迎です。

4

1 に答える 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 に答える