第2レベルのサブページを持つネストされたアコーディオンを持つタブに第1レベルのページのすべてのサブページを表示するカスタムページテンプレートを作成しました。これが私のページです:http: //avgustin.dn.ua/en/menu/
この問題のため、タブ内のjqueryuiアコーディオンデフォルトではアコーディオンの前にタブを初期化するため、プラグインJQueryUIを使用できません。だから私はjqueryを手動で追加します(function.phpの次のアドバイスのように編集します):
function my_enqueue_jquery_ui() {
wp_enqueue_script( 'jquery-ui-1.8.2', '/wp-content/themes/papyrus/js/jquery-1.8.2.js', '1.8.2', array( 'jquery' ) );
}
function my_enqueue_jquery_ui2() {
wp_enqueue_script( 'jquery-ui-1.9.1.custom', '/wp-content/themes/papyrus/js/jquery-ui-1.9.1.custom.js', '1.9.1', array( 'jquery' ) );
}
add_action('wp_enqueue_scripts', 'my_enqueue_jquery_ui');
add_action('wp_enqueue_scripts', 'my_enqueue_jquery_ui2');
タブの前にアコーディオンを初期化するよりも
jQuery(document).ready(function($) {
<?php
foreach( $mypages as $page ) {
$content = $page->post_content;
if ( ! $content ) // Check for empty page
continue;?>
$("#accordion<?php echo $page->ID ?>").accordion({collapsible: true, active: -10 });
<?php
}
?>
$("#tabs").tabs();
});
フラッシュギャラリーなど、jqueryを使用するプラグインをアクティブ化するまで、すべてが正常に機能します。厳密な方法でページテンプレートにカスタムjqueryサポートを追加するにはどうすればよいですか。jqueryを使用してユニバーサル作業ページテンプレートを作成するのは本当ですか?これは、変更なしで任意のテンプレートで使用できますか?お願い助けて!これが完全なコードです
<?php
/*
Template Name: Menu_page
*/
?><?php get_header(); ?>
<div id="content">
<div class="entry"/>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="post-content">
<?php
$mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'post_date', 'sort_order' => 'desc', 'parent' => $post->ID) );?>
<div id="tabs">
<ul>
<?php
foreach( $mypages as $page ) {
$content = $page->post_content;
if ( ! $content ) // Check for empty page
continue;
$content = apply_filters( 'the_content', $content );
?>
<li><a href="#tab<?php echo $page->ID ?>"><?php echo $page->post_title; ?></a></li>
<?php
}?>
</ul>
<?php
foreach( $mypages as $page ) {
$content = $page->post_content;
if ( ! $content ) // Check for empty page
continue;
$content = apply_filters( 'the_content', $content );
?>
<div id="tab<?php echo $page->ID ?>">
<?php echo $content;?>
<div id="accordion<?php echo $page->ID ?>">
<?php
$mypages2 = get_pages( array( 'child_of' => $page->ID, 'sort_column' => 'menu_order', 'sort_order' => 'asc', 'parent' => $page->ID) );
foreach( $mypages2 as $page2 ) {
$content2 = $page2->post_content;
if ( ! $content2 ) // Check for empty page
continue;
$content2 = apply_filters( 'the_content', $content2 );?>
<h3><a href="#"><?php echo $page2->post_title; ?></a></h3>
<div>
<?php echo $content2;?>
</div>
<?php }?>
</div>
</div>
<?php
}?></div>
<script>
jQuery(document).ready(function($) {
<?php
foreach( $mypages as $page ) {
$content = $page->post_content;
if ( ! $content ) // Check for empty page
continue;?>
$("#accordion<?php echo $page->ID ?>").accordion({collapsible: true, active: -10 });
<?php
}
?>
$("#tabs").tabs();
});
</script>
<?php the_content('<p class="serif">Читать полностью »</p>'); ?>
<?php link_pages('<p><strong>Страницы:</strong> ', '</p>', 'number'); ?>
</div>
</div>
<?php endwhile; endif; ?>
</div>
</div><!--/content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Chromeのソースコードで他のプラグイン(フラッシュギャラリー)をアクティブにすると、次のように表示されます。
<script type='text/javascript' src='http://avgustin.dn.ua/wp-includes/js/jquery/jquery.js?ver=1.7.2'></script>
jqueryの行が初期化された後。そして、私のjqueryは機能しません:(