Андрей Д.
34 сообщения
#8 лет назад
Здравствуйте.
Пытаюсь отредактировать кусочек кода для виджета WPP. В php полный ноль, поэтому буду благодарен вашей помощи.

Есть стандартный код для вставки в сайдбар через файл sidebar.php
<?php
$args = array(
'limit' => 5,
'post_html' => '<li>{thumb}</li>'
);

wpp_get_mostpopular( $args );
?>

Необходимо вместо {thumb} вставить следующий код:
<a href="<?php the_permalink(); ?>" class="thumb-preview" rel="<?php zt_get_thumbnail2(); ?>"><img src="<?php zt_get_thumbnail(); ?>" alt="<?php the_title(); ?>" class="img250" /></a>

чтобы при наведении на миниатюру появлялась увеличенная превьюшка.

Спасибо!
Сергей Глушко
834 сообщения
#8 лет назад
<?php
   $args = array(
   'limit' => 5,
   'post_html' => '<li><a href="'.the_permalink().'" class="thumb-preview" rel="'. zt_get_thumbnail2().'"><img src="'.zt_get_thumbnail().'" alt="'.the_title().'" class="img250" /></a>'
);
wpp_get_mostpopular( $args );
?>
Андрей Д.
34 сообщения
#8 лет назад
micros, увы, ваш вариант не работает
Сергей Глушко
834 сообщения
#8 лет назад
bek03,еще раз скопируйте все внимательно=) работает=)
Андрей Д.
34 сообщения
#8 лет назад
Или можно проще - в этот код
Код:

/*
* Display the title and the publish date
*/
function my_custom_single_popular_post( $post_html, $p, $instance ){
$output = '<li><a href="' . get_the_permalink($p->id) . '" class="my-custom-title-class" title="' . esc_attr($p->title) . '">' . $p->title . '</a> <div class="my-custom-date-class">' . date( 'Y-m-d', strtotime($p->date) ) . '</div></li>';
return $output;
}
add_filter( 'wpp_post', 'my_custom_single_popular_post', 10, 3 );

добавить между <li></li> этот код
<a href="<?php the_permalink(); ?>" class="thumb-preview" rel="<?php zt_get_thumbnail2(); ?>"><img src="<?php zt_get_thumbnail(); ?>" alt="<?php the_title(); ?>" class="img250" /></a>

micros, я изначально копировал с убранным php возле permalinks
Код все равно не работает, увы
Сергей Глушко
834 сообщения
#8 лет назад
bek03,а какая ошибка?
Андрей Д.
34 сообщения
#8 лет назад
Миниатюр нет - битые изображения, все ссылки на главную.
Сергей Глушко
834 сообщения
#8 лет назад

  1. <?php

  2.    $args = array(

  3.    'limit' => 5,

  4.    'post_html' => '<li><a href="'. echo the_permalink().'" class="thumb-preview" rel="'. echo zt_get_thumbnail2().'"><img src="'. echo zt_get_thumbnail().'" alt="'. echo the_title().'" class="img250" /></a>'

  5. );

  6. wpp_get_mostpopular( $args );

  7. ?>

так попробуйте, хотя the_permalink - и так должна выводить=)) Значит не в том месте вы код ставите=)
Андрей Д.
34 сообщения
#8 лет назад
micros, не работает  Все, что после этого кода - белый экран.
Ставлю, конечно, в том месте (sidebar.php), на это у меня знаний хватает
Сергей Глушко
834 сообщения
#8 лет назад
Лог посмотрите, какие ошибки?
Андрей Д.
34 сообщения
#8 лет назад
Эмм, мне кажется второй вариант проще и именно его рекомендуют на сайте автора использовать через function.php.
Подскажите,  как в этом коде
$output = '<li><a href="' . get_the_permalink($p->id) . '" class="my-custom-title-class" title="' . esc_attr($p->title) . '">' . $p->title . '</a> <div class="my-custom-date-class">' . date( 'Y-m-d', strtotime($p->date) ) . '</div></li>';

заменить все, что внутри <li></li> на этот код:
<a href="<?php the_permalink(); ?>" class="thumb-preview" rel="<?php zt_get_thumbnail2(); ?>"><img src="<?php zt_get_thumbnail(); ?>" alt="<?php the_title(); ?>" class="img250" /></a>
Сергей Глушко
834 сообщения
#8 лет назад
Ну так замените, в прошлом коде и есть эта часть <li>
Я понял в чем косяк=) вы используете не в цикле, а передаете в функцию=) 
the_permalink - она не возвращает значение а выводит, поэтому в функцию ничего не передается=) надо использовать  get_the_permalink для оставльных функции в строке тоже найти функции которые возвращают, а не выводят
по остальным функциям тоже надо смотреть ман, что бы сделать
Андрей Д.
34 сообщения
#8 лет назад
micros, если просто заменить, то отображается с ошибками, т.к. в ссылках php код.
Сергей Глушко
834 сообщения
#8 лет назад
   $args = array(
   'limit' => 5,
   'post_html' => '<li><a href="'.get_the_permalink().'" class="thumb-preview" rel="'. zt_get_thumbnail2().'"><img src="'.zt_get_thumbnail().'" alt="'. get_the_title().'" class="img250" /></a>'
);
wpp_get_mostpopular( $args );
заработает если zt_get_thumbnail и zt_get_thumbnail2 возвращают а не выводят ссылки на картинки)
Андрей Д.
34 сообщения
#8 лет назад
micros, не сработало  Выводяися 5 раз ссылка на одную запись, миниатюры битые.
Ладно, спасибо, что пытались помочь. Видимо, здесь все намного сложнее, чем я думал.
Сергей Глушко
834 сообщения
#8 лет назад
bek03, да просто там, просто надо видите где выводится=))) 
Виталий Бохин
953 сообщения
#8 лет назад
Get_the_permalink и get_the_title нужно вызывать в цикле или передавать в них id по этому правьте в коде плагина, там есть переменная $p->id, а zt_get_thumbnail() должна возвращать только урл. (без echo), а у вас по всей видимости не так