• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Нужна помощь с шаболоном Harmony

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
895
Реакции
241
Всем привет, речь вот об этом Для просмотра ссылки Войди или Зарегистрируйсяот elegantthemes - пытаюсь допилить под свои нужды, но вот осталось несколько нерешенных проблем.

Первое, что необходимо, это изменить кое-где вывод на главной странице.
Т.е. порядок чередования - фиксированное фоновое изображение - стандартный светлый фон - нравится, и хочу, чтобы это чередование осталось, но вот магазин мне пока не нужен. В этом шаблоне вывод этой части реализован только если woocommerce установлен и есть рекомендуемые товары. Для полноты картины установил, удалю если смогу справиться без него. На место "рекомендуемых товаров" из магазина хочу воткнуть accordion на 5-10 элементов, сделанный с помощью вот этого Для просмотра ссылки Войди или Зарегистрируйся.
С помощью этого плагина элементы выводятся шорткодом - т.е. с помощью небольшой css обертки я могу легко вывести то что мне требуется в пост, на страницу или в текстовый виджет - вот таким образом например.
Код:
<style>
.ui-accordion-header{ margin:2px 0 0; }

.ui-accordion-header a{
padding:2px 12px;
background: #202020;
color:#FFFFFF;
display:block;
border:medium none #202020;
width:990px; height:40px; }

.ui-accordion-header.ui-state-active a, .ui-accordion-header a:hover{ background-color: #EC6262;
color:#FFFFFF;
border-color: #EC6262;
width:990px; height:40px; }

.ui-accordion-content{ padding-top:10px; width:990px; } h2{ font-size:30px;
font-weight: 100; }
</style>
<h2>Тексты</h2>
<p></p>
<p></p>
<p></p>
[accordions autoHeight='true'  disabled='false' active=50  clearStyle=false collapsible=true fillSpace=true ]
[accordion title='Название 1' class='new-class']
Внутренний текст
[/accordion]
[accordion title='Название 2' class='new-class']
Внутренний текст
[/accordion]
[accordion title='Название 3' class='new-class']
Внутренний текст
[/accordion]
[accordion title='Название 4' class='new-class']
Внутренний текст
[/accordion]
[accordion title='Название 5' class='new-class']
Внутренний текст
[/accordion]
[/accordions]
Вот это то я и хотел бы добавить вместо вывода товаров из магазина - в шаблоне этот вывод товаров реализован так:
Код:
<?php if ( class_exists( 'woocommerce' ) && 'on' == $display_shop_section ) : ?>

<div id="home-products">
    <div class="container">
        <h2><?php echo esc_html( et_get_option( 'harmony_shop_section_title', __( 'Awesome Swag', 'Harmony' ) ) ); ?></h2>
        <div id="products" class="clearfix">
        <?php
            $products_per_page = (int) et_get_option( 'harmony_homepage_products_per_page', 8 );
            echo do_shortcode( sprintf( '[featured_products per_page="%s" columns="4"]', esc_attr( $products_per_page ) ) );
        ?>
        </div> <!-- end #products -->
    </div> <!-- end .container -->
</div> <!-- end #home-products -->

<?php endif; // class_exists( 'woocommerce' ) && 'on' == $display_shop_section ?>
В общем то я согласен даже прямо тут внаглую, внутри скажем контейнера прописать то что мне надо, лишь бы заработало, но вот пока не получается. Т.е. я понимаю, что тут нельзя напрямую шорткодом прописывать, поэтому пытаюсь прописать чистым html, все в принципе получается, весь аккордеон вижу, но не работает java script - хотя если тут же рядом ниже вывожу в текстовом виджете - все работает.
Возможно, я как то неправильно подключаю js файл от аккордеона - или может дело в другом, сам js файл маленький вот такого содержания:
Код:
jQuery(document).ready(function($) {
    $.each(accordion_shortcode, function(id, attr) {
        $("#" + id).accordion(attr);
    });
    if (location.hash) {
        $(location.hash).trigger('click');
    }
});
Очень хочется вывести этот аккордеон в нужном месте и чтобы он еще работал....
 
И вторая проблема, подобная, не знаю, проще или сложнее - ниже в этом шаблоне идет вывод галереи -
но вот какая штука, там сделано несколько галерей, и на главной реализован вывод превьюшек №-го числа этих галерей, по клику открывается уже выбранная галерея. Я же хочу вывести на главной, на этом самом месте, одну конкретную галерею, поскольку у меня она у меня - галерея - таки одна.

Вот место в шаблоне, отвечающее за вывод галерей.
Код:
<?php if ( 'on' == $display_gallery_section ) : ?>

<?php
    $args = array(
        'post_type'            => 'gallery',
        'meta_key'            => '_et_gallery_date',
        'orderby'            => 'meta_value_num',
        'order'            => 'Desc',
        'posts_per_page'    => (int) et_get_option( 'harmony_home_gallery_number', 8 ),
    );
    $et_gallery_query = new WP_Query( apply_filters( 'et_home_gallery_query_args', $args ) );
?>
<?php if ( $et_gallery_query->have_posts() ) : ?>
<div id="media-gallery" class="main_bg">
    <div class="container">
        <h2><?php echo esc_html( et_get_option( 'harmony_media_gallery_section_title', __( 'Media Gallery', 'Harmony' ) ) ); ?></h2>
        <div id="gallery-photos" class="clearfix">
    <?php
        $i = 0;
        while ( $et_gallery_query->have_posts() ) : $et_gallery_query->the_post();
            $thumb = '';
            $width = (int) apply_filters( 'et_gallery_image_width', 170 );
            $height = (int) apply_filters( 'et_gallery_image_height', 170 );
            $classtext = '';
            $titletext = get_the_title();
            $thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'Gallery' );
            $thumb = $thumbnail["thumb"];
            $gallery_date = get_post_meta( get_the_ID(), '_et_gallery_date', true );
            $i++;
        ?>
            <div class="gallery-photo<?php if ( $i % 4 == 0 ) echo ' last'; ?>">
                <div class="image">
                    <a href="<?php the_permalink(); ?>">
                <?php
                    if ( '' != $thumb ) {
                        print_thumbnail( $thumb, $thumbnail["use_timthumb"], $titletext, $width, $height, $classtext );
                    } else {
                        $media = get_post_meta( get_the_ID(), '_et_used_images', true );
                        if ( $media ){
                            foreach( (array) $media as $et_media ){
                                if ( is_numeric( $et_media ) ) {
                                    $et_fullimage_array = wp_get_attachment_image_src( $et_media, 'full' );
                                    if ( $et_fullimage_array ){
                                        $et_fullimage = $et_fullimage_array[0];
                                        echo '<img src="' . esc_url( et_new_thumb_resize( et_multisite_thumbnail($et_fullimage ), $width, $height, '', true ) ) . '" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" alt="'. esc_attr( $titletext ) . '">';
                                    }
                                    break;
                                } else {
                                    continue;
                                }
                            }
                        }
                    }
                ?>
                        <span class="gallery_image_overlay"></span>
                    </a>
                </div> <!-- .image -->
            <?php if ( '' != $gallery_date ) { ?>
                <div class="image-date"><span><?php echo date( et_get_option( 'harmony_date_format', 'M j, Y' ), $gallery_date ); ?></span></div>
            <?php } ?>
            </div> <!-- .gallery-photo -->
        <?php endwhile; ?>
        </div> <!-- end #gallery-photos -->
        <a href="<?php echo esc_url( get_post_type_archive_link( 'gallery' ) ); ?>" class="view-more"><?php esc_html_e( 'View More', 'Harmony' ); ?></a>
    </div> <!-- end .container -->
</div> <!-- end #media-gallery -->
<?php endif; ?>
<?php wp_reset_postdata(); ?>

<?php endif; // 'on' == $display_gallery_section ?>

А вот, если я правильно понимаю,файл где показан вывод отдельной галереи - single-gallery.php

Код:
<?php get_header(); ?>

<div id="main-area">
    <div class="container">
        <div id="content-area" class="clearfix fullwidth">
            <div id="left-area">

            <?php while ( have_posts() ) : the_post(); ?>

                <article id="post-<?php the_ID(); ?>" <?php post_class( 'clearfix entry entry-content' ); ?>>

                    <h1 class="title"><?php the_title(); ?></h1>
                    <p class="meta-info">
                    <?php
                        $gallery_date = get_post_meta( get_the_ID(), '_et_gallery_date', true );
                        $et_gallery_date = '' != $gallery_date ? date( et_get_option( 'harmony_date_format', 'M j, Y' ), $gallery_date ) : et_get_option( 'harmony_date_format', 'M j, Y' );

                        printf( _x( 'Posted by %1$s in %2$s on %3$s | %4$s', 'Meta information on single gallery page', 'Harmony' ),
                            et_get_the_author_posts_link(),
                            get_the_term_list( get_the_ID(), 'gallery_category', '', ', ' ),
                            esc_html( $et_gallery_date ),
                            et_get_comments_popup_link( __( '0 comments', 'Harmony' ), __( '1 comment', 'Harmony' ), '% ' . __( 'comments', 'Harmony' ) )
                        ); ?>
                    </p>

        <?php
            $i = 0;
            $media = get_post_meta( get_the_ID(), '_et_used_images', true );
            $width = (int) apply_filters( 'et_gallery_image_width', 170 );
            $height = (int) apply_filters( 'et_gallery_image_height', 170 );

            if ( $media ) : ?>
                        <div id="et-gallery-images" class="clearfix">
        <?php    foreach( (array) $media as $et_media ) :
                    $i++;
                    if ( is_numeric( $et_media ) ) {
                        $et_fullimage_array = wp_get_attachment_image_src( $et_media, 'full' );
                        if ( $et_fullimage_array ){
                            $et_fullimage = $et_fullimage_array[0];
                        ?>
                            <div class="gallery-photo<?php if ( $i % 4 == 0 ) echo ' last'; if ( ( $i - 1 ) % 4 == 0 ) echo ' et_first'; ?>">
                                <div class="image">
                                    <a rel="et_gallery" href="<?php echo esc_url( $et_fullimage ); ?>" class="fancybox" title="<?php echo esc_attr( get_the_title( $et_media ) ); ?>">
                                        <?php echo '<img src="' . esc_url( et_new_thumb_resize( et_multisite_thumbnail( $et_fullimage ), $width, $height, '', true ) ) . '" width="' . esc_attr( $width ) . '" height="' . esc_attr( $height ) . '" />'; ?>
                                        <span class="gallery_image_overlay"></span>
                                    </a>
                                </div> <!-- .image -->
                            <?php if ( '' != $gallery_date ) { ?>
                                <div class="image-date"><span><?php echo esc_attr( get_the_title( $et_media ) ); ?></span></div>
                            <?php } ?>
                            </div> <!-- .gallery-photo -->
                <?php    }
                    }
                endforeach; ?>
                        </div> <!-- #et-gallery-images -->
    <?php    endif;
        ?>

                <?php
                    the_content();
                    wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'Harmony' ), 'after' => '</div>' ) );
                ?>

                </article> <!-- end .post-->

                <?php
                    if ( comments_open() && 'on' == et_get_option( 'harmony_show_postcomments', 'on' ) )
                        comments_template( '', true );
                ?>

            <?php endwhile; ?>

            </div> <!-- end #left-area -->
        </div> <!-- end #content-area -->
    </div> <!-- end .container -->
</div> <!-- end #main-area -->

<?php get_footer(); ?>

Допустим, я хочу вывести галерею с идентификатором 755, принудительно его прописываю, но ничего не выводится, за исключением почему-то какого-то текста....
Предполагаю, что и тут я опять накосячил, и очень надеюсь на вашу помощь.
 
По поводу первой проблемы.
Как вы пробовали подключать js? В виде линка на отдельный файл или скрипт в теге <script> ?
И так и так - не идет и все...
Есть еще одна мысль - попробовать вывести в нужном месте пост или страницу - то есть не запихивать туда код аккордеона со стилями и js - а тупо вывести содержание поста или страницы с id таким-то - ведь в странице или в записи все работает. А в страницу или запись помещается легко через шорткод...
Вот только я что то никак сегодня не могу это сделать - вывести содержание поста или страницы надо обязательно после read more - а у меня что то выводится до...
 
Назад
Сверху