Intereting Posts
Запустить дополнительную службу в домене с помощью WordPress Multisite? Как запретить людям видеть прикрепленное к запланированному сообщению, которое будет выпущено в будущем? Как WordPress шифрует пароль? Исключить категории из контекстного меню Сайт WP только показывает Javascript для главной страницы Добавить класс в Категории Виджет WP-Admin edit.php и post.php замедление после импорта 10k пользователей настройки плагина – загрузка нескольких файлов с помощью одной кнопки Разделить список пользователей? Получите идентификационный номер Taxonmy для текущего сообщения Я разбил его! Пользовательский архив типа сообщения перенаправляется на родину Вопросы аутентификации / API Получать смещение заслонки post posts / posts на одной странице (вне цикла) пользовательский, отправленный из сообщения в боковой панели Где, когда, и как правильно очистить правила перезаписи в рамках плагина?

Основная проблема слайд-шоу Skt

Задний план:

Я делаю сайт для фотографии и думаю, что полная ширина экрана является хорошей темой для целевой страницы. Все наладилось. Затем я начал получать фантазию. Я хотел, чтобы мой клиент мог выбрать, могут ли они отображать шесть случайных снимков для слайд-шоу на главной странице. Это делается с помощью дополнительной опции в медиаредакторе, где они могут выбрать, хотят ли они, чтобы определенное изображение было частью слайд-шоу.

Я отредактировал их файл функций темы, и теоретически код должен работать, однако теперь вместо этого код не работает. Я сохранил весь свой код и просто добавил в файл, и когда я выбираю любой параметр в настройке для случайных фотографий или предварительно выбранных фотографий, они оба не работают.

Вопрос:

Является ли это их исправлением для кода (показано ниже), что заставит слайд-шоу работать?

Кроме того, поскольку я хочу использовать эту тему только в качестве моей посадочной / домашней страницы, должен ли я скопировать код для домашней страницы в свой плагин сайта, а затем выбрать другую тему?

Код:

<?php if (is_front_page() || is_home()) { if (get_theme_mod('rand_slide') == 'static') { for ($i = 1; $i < 6; $i++) { if (of_get_option('slide' . $i, true) != "") { $imgUrl = esc_url(of_get_option('slide' . $i, true)); $imgTitle = esc_html(of_get_option('slidetitle' . $i, true)); $imgDesc = esc_html(of_get_option('slidedesc' . $i, true)); $imgHref = esc_html(of_get_option('slideurl' . $i, true)); if ($imgUrl != '') { echo '{image : \'' . $imgUrl . '\', title : \'<div class="slide-title"><span>' . ( ($imgHref != '' && $imgTitle != '') ? '<a href="' . $imgHref . '">' : '') . $imgTitle . ( ($imgHref != '' && $imgTitle != '') ? '</a>' : '') . '</span></div><div class="slide-description"><span>' . $imgDesc . '</span></div>' . ( ($imgHref != '') ? '<div class="slide-description"><span><a href="' . $imgHref . '">Read More &rsaquo;</a></span></div>' : '') . '\', thumb : \'' . $imgUrl . '\', url : \'\'},' . "\n"; } } } } elseif (get_theme_mod('rand_slide') == 'random') { $args = array( 'post_type' => 'attachment', 'meta_key' => 'on_front_page', 'meta_value' => '1', 'orderby' => 'rand', 'posts_per_page' => 6, 'max_num_pages' => 1, ); $slides = new WP_Query($args); if ($slides->have_posts()) { while ($slides->have_posts()) { $img = $slides->next_post(); $imgId = $img->ID; $imgTitle = $img->post_title; $imgHref = get_permalink($img); $imgDesc = $img->post_content; $imgData = wp_get_attachment_image_src($imgId, 'thumbnail'); $imgUrl = $imgData[0]; if ($imgUrl != '') { echo '{image : \'' . $imgUrl . '\', title : \'<div class="slide-title"><span>' . ( ($imgHref != '' && $imgTitle != '') ? '<a href="' . $imgHref . '">' : '') . $imgTitle . ( ($imgHref != '' && $imgTitle != '') ? '</a>' : '') . '</span></div><div class="slide-description"><span>' . $imgDesc . '</span></div>' . ( ($imgHref != '') ? '<div class="slide-description"><span><a href="' . $imgHref . '">Read More &rsaquo;</a></span></div>' : '') . '\', thumb : \'' . $imgUrl . '\', url : \'\'},' . "\n"; } } } } } 

Исходный код начинался с строки 170 в файле функций темы.

Solutions Collecting From Web of "Основная проблема слайд-шоу Skt"

Попробуйте это … он должен хотя бы указать вам в правильном направлении. Обратите внимание, что, не зная, каковы ваши функции / параметры, очень трудно дать хороший ответ.

 <?php try { $do_echo = true; if (is_front_page() || is_home()) { if ( $do_echo ) { echo "<p>Is front page or blog</p>"; } $test = get_theme_mod('rand_slide'); if ( $do_echo ) { echo "<p>get theme mode: {$test}</p>"; } if (get_theme_mod('rand_slide') == 'static') { if ( $do_echo ) { echo "<p>Random slide is static</p>"; } for ($i = 1; $i < 6; $i++) { $test_two = of_get_option('slide' . $i, true); if ( $do_echo ) { echo "<p>of_get_option( slide{$i}, true ) is {$test_two}</p>"; } if (of_get_option('slide' . $i, true) != "") { if ( $do_echo ) { echo "<p>In inner loop for {$i}</p>"; } $imgUrl = esc_url(of_get_option('slide' . $i, true)); if ( $do_echo ) { echo "<p>imgUrl is now {$imgUrl}</p>"; } $imgTitle = esc_html(of_get_option('slidetitle' . $i, true)); $imgDesc = esc_html(of_get_option('slidedesc' . $i, true)); $imgHref = esc_html(of_get_option('slideurl' . $i, true)); if ($imgUrl != '') { if ( $do_echo ) { echo "<p>Going to echo slide...</p>"; } $to_echo = '{image : \'' . $imgUrl . '\', title : \'<div class="slide-title"><span>' . ( ($imgHref != '' && $imgTitle != '') ? '<a href="' . $imgHref . '">' : '') . $imgTitle . ( ($imgHref != '' && $imgTitle != '') ? '</a>' : '') . '</span></div><div class="slide-description"><span>' . $imgDesc . '</span></div>' . ( ($imgHref != '') ? '<div class="slide-description"><span><a href="' . $imgHref . '">Read More &rsaquo;</a></span></div>' : '') . '\', thumb : \'' . $imgUrl . '\', url : \'\'},' . "\n"; if ( $do_echo ) { echo "<p>Would now echo " . html_attributes($to_echo) . "</p>"; echo $to_echo; } else if ( $do_echo ) { echo "<p>imgUrl empty, not displaying slide</p>"; } } else if ( $do_echo ) { echo "<p>of_get_option returned empty string. not echoing slide.</p>"; } } } elseif (get_theme_mod('rand_slide') == 'random') { $args = array( 'post_type' => 'attachment', 'meta_key' => 'on_front_page', 'meta_value' => '1', 'orderby' => 'rand', 'posts_per_page' => 6, 'max_num_pages' => 1, ); $slides = new WP_Query($args); if ($slides->have_posts()) { while ($slides->have_posts()) { $img = $slides->next_post(); $imgId = $img->ID; $imgTitle = $img->post_title; $imgHref = get_permalink($img); $imgDesc = $img->post_content; $imgData = wp_get_attachment_image_src($imgId, 'thumbnail'); $imgUrl = $imgData[0]; if ($imgUrl != '') { echo '{image : \'' . $imgUrl . '\', title : \'<div class="slide-title"><span>' . ( ($imgHref != '' && $imgTitle != '') ? '<a href="' . $imgHref . '">' : '') . $imgTitle . ( ($imgHref != '' && $imgTitle != '') ? '</a>' : '') . '</span></div><div class="slide-description"><span>' . $imgDesc . '</span></div>' . ( ($imgHref != '') ? '<div class="slide-description"><span><a href="' . $imgHref . '">Read More &rsaquo;</a></span></div>' : '') . '\', thumb : \'' . $imgUrl . '\', url : \'\'},' . "\n"; } } } } } } catch ( Exception $e ) { echo "<p>A fatal error has occurred...</p><pre>" . print_r($e, true) . "</pre>"; } 

Да, это хаки … но, выполняя кучу эхо-заявлений, вы должны точно видеть, чего не ожидает то, чего вы ожидаете.

И, как указано в Howdy, обязательно включите флаги отладки и проверьте также проблемы.

Если вы не используете хотя бы PHP 5, удалите окружение try / catch.

Лично, если у вас возникли проблемы с вашим кодом, я бы рекомендовал следующее:

  • Убедитесь, что для разных флагов WP_DEBUG установлено значение true.
  • Обязательно проверьте, что все так, как вы ожидаете. Не просто делайте, убедитесь, что переменные как ожидалось … или выдают исключение или, по крайней мере, регистрируют уведомление на сервере.

Например, в вашем коде вы выполните:

 if ( $imgUrl != '' ) { # do stuff } 

Вы действительно должны рассмотреть

 if ( !empty( $imgUrl ) ) { # do stuff } else { # unexpected! Maybe throw and handle an exception, add to the server error log, etc. } 

Это сэкономит вам массу головных болей в долгосрочной перспективе.