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

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

wpp_get_mostpopular( $args );
?>
[/code]
Необходимо вместо {thumb} вставить следующий код:
[code]<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>
[/code]
чтобы при наведении на миниатюру появлялась увеличенная превьюшка.

Спасибо!
Сергей Глушко
834 сообщения
#9 лет назад
[code]<?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 );
?>
[/code]
Андрей Д.
34 сообщения
#9 лет назад
micros, увы, ваш вариант не работает
Сергей Глушко
834 сообщения
#9 лет назад
bek03,еще раз скопируйте все внимательно=) работает=)
Андрей Д.
34 сообщения
#9 лет назад
Или можно проще - в этот код
Код:
[code]
/*
* 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 );
[/code]
добавить между <li></li> этот код
[code]<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>[/code]
micros, я изначально копировал с убранным php возле permalinks
Код все равно не работает, увы
Сергей Глушко
834 сообщения
#9 лет назад
bek03,а какая ошибка?
Андрей Д.
34 сообщения
#9 лет назад
Миниатюр нет - битые изображения, все ссылки на главную.
Сергей Глушко
834 сообщения
#9 лет назад
[code][list=1]
  • <?php

  •    $args = array(

  •    'limit' => 5,

  •    '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>'

  • );

  • wpp_get_mostpopular( $args );

  • ?>[/list][/code]
    так попробуйте, хотя the_permalink - и так должна выводить=)) Значит не в том месте вы код ставите=)
  • Андрей Д.
    34 сообщения
    #9 лет назад
    micros, не работает  Все, что после этого кода - белый экран.
    Ставлю, конечно, в том месте (sidebar.php), на это у меня знаний хватает
    Сергей Глушко
    834 сообщения
    #9 лет назад
    лог посмотрите, какие ошибки?
    Андрей Д.
    34 сообщения
    #9 лет назад
    Эмм, мне кажется второй вариант проще и именно его рекомендуют на сайте автора использовать через function.php.
    Подскажите,  как в этом коде
    [code]$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>';
    [/code]
    заменить все, что внутри <li></li> на этот код:
    [code]<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>[/code]
    Сергей Глушко
    834 сообщения
    #9 лет назад
    ну так замените, в прошлом коде и есть эта часть <li>
    Я понял в чем косяк=) вы используете не в цикле, а передаете в функцию=) 
    the_permalink - она не возвращает значение а выводит, поэтому в функцию ничего не передается=) надо использовать  get_the_permalink для оставльных функции в строке тоже найти функции которые возвращают, а не выводят
    по остальным функциям тоже надо смотреть ман, что бы сделать
    Андрей Д.
    34 сообщения
    #9 лет назад
    micros, если просто заменить, то отображается с ошибками, т.к. в ссылках php код.
    Сергей Глушко
    834 сообщения
    #9 лет назад
    [code]   $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 );[/code]заработает если zt_get_thumbnail и zt_get_thumbnail2 возвращают а не выводят ссылки на картинки)
    Андрей Д.
    34 сообщения
    #9 лет назад
    micros, не сработало  Выводяися 5 раз ссылка на одную запись, миниатюры битые.
    Ладно, спасибо, что пытались помочь. Видимо, здесь все намного сложнее, чем я думал.
    Сергей Глушко
    834 сообщения
    #9 лет назад
    bek03, да просто там, просто надо видите где выводится=))) 
    Виталий Бохин
    953 сообщения
    #9 лет назад
    Get_the_permalink и get_the_title нужно вызывать в цикле или передавать в них id по этому правьте в коде плагина, там есть переменная $p->id, а zt_get_thumbnail() должна возвращать только урл. (без echo), а у вас по всей видимости не так