私はWordpress Webサイトとそれにインストールしたテーマを実行しています。ホームページに表示されるnivoSliderが付属しています。現在、WP ダッシュボードにログインして [テーマ オプション] パネルに移動することで、ホームページに表示するスライダーを選択できます。そこから、ホームページに表示するスライダーをドロップダウンから選択できます (さらにスライダーを作成すると、リストが表示され続けます)。テーマ オプション パネルの「Slider」セクションをエコーするコードは次のとおりです。
//------------------------------------------------------------------------------
// SLIDER
//------------------------------------------------------------------------------
$options[] = array( "name" => __('SLIDER','gxg_textdomain'),
"type" => "heading",
"img" => "/includes/admin/images/s.png");
$options[] = array( "name" => __('Set up your slider','gxg_textdomain'),
"type" => "info");
$options[] = array( "name" => __('Show Slider on Homepage','gxg_textdomain'),
"id" => $shortname."_slider",
"std" => "1",
"type" => "checkbox");
$options[] = array( "name" => __('Select a Slider','gxg_textdomain'),
"desc" => __('After you have created a slider, you can select it here.','gxg_textdomain'),
"id" => $shortname."_sliderimages",
"type" => "select",
"options" => $options_slides);
これは、ホームページのスライダーをエコーする header.php ファイル内のコードです。
<?php get_template_part( 'slider' ); ?>
現在、上記のコードを任意のテンプレート ファイル内に配置して特定のテンプレートにスライダーを表示すると、表示される唯一のスライダーは、テーマ オプション パネルから選択されたものです。これは、slider.php ファイル内にあるコードです。
<div id="slider" class="nivoSlider">
<?php
if ( of_get_option('gg_slider') && of_get_option('gg_sliderimages') ) {
global $wpdb, $post;
$slider = of_get_option('gg_sliderimages');
$meta = get_post_meta( $slider, 'gxg_slider_images', false );
if ( !is_array( $meta ) )
$meta = ( array ) $meta;
if ( !empty( $meta ) ) {
$meta = implode( ',', $meta );
$images = $wpdb->get_col( "
SELECT ID FROM $wpdb->posts
WHERE post_type = 'attachment'
AND ID IN ( $meta )
ORDER BY menu_order ASC
" );
foreach ( $images as $att ) {
// Get image's source
$src = wp_get_attachment_image_src( $att, 'full' );
$src = $src[0];
$caption = get_post_meta( $att , '_slidercaption', true);
$caption = htmlspecialchars($caption, ENT_QUOTES);
$cf = get_post_meta( $att , '_sliderurl', true);
// Show image
if ($cf) {
echo "<a href='$cf'><img src='{$src}' alt='' title='$caption' /></a>";
} else {
echo "<img src='{$src}' alt='' title='$caption' />";
}
}
}
}
?>
</div><!-- .slider-->
私が基本的にやりたいことは、スライダーの ID またはスライダーのスラッグ (slider.php ファイル内) を直接入力できるように、slider.php ファイルを変更して、echo になるようにすることです。テーマ オプション パネルで選択したスライダーに関係なく表示されます。私が理解していることから、これはテーマ オプション パネルでの選択に基づいてスライダーを選択しているコードである可能性があります。
$slider = of_get_option('gg_sliderimages');
上記のコードの ' ' の代わりに、of_get_option('gg_sliderimages')
表示したいスライダーの ID/スラッグを入力する方法はないかと考えていました。
解決を楽しみにしています。ありがとうございました。