eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

Вывод тайтла в ссылках виджета

Доброго времени суток!
Столкнулся с необходимостью немного кастомизировать вывод ссылок в виджете.

Есть код

# Get genres
function doo_li_genres(){
	$transient = get_transient('dooplay_genres_widget');
	if(false === $transient){
		$args = array(
			'post_type'    => '',
			'taxonomy'     => 'genres',
			'orderby'      => 'DESC',
			'show_count'   => 1,
			'hide_empty'   => false,
			'pad_counts'   => 0,
			'hierarchical' => 1,
			'exclude'      => '55',
			'title_li'     => '',
			'echo'         => 0
		);
		$links = wp_list_categories($args);
		$links = str_replace('</a> (', '</a> <i>', $links);
		$transient = str_replace(')', '</i>', $links);
		set_transient('dooplay_genres_widget', $transient, MINUTE_IN_SECONDS*5);
	}
	echo $transient;
}

Как в него возможно добавить тайтлы в ссылки на категории + кастомный текст?

Т.е. категория выводится ссылкой "Боевики". Тайтла нету. Я хочу добавить тайтл "Смотреть онлайн Боевики"
Сам кусок "Смотреть онлайн" будет для всех категорий одинаковый.

Буду благодарен за помощь.
Спасибо!

Заметки к вопросу:
stepan 3 года назад

задачу решили?

0
Роман
3 года назад
  • 0

    @stepan Нет, к сожалению не решил.
    На других ресурсах подсказали 2 кода, но они не сработали

    # Get genres
    function doo_li_genres(){
    	$transient = get_transient('dooplay_genres_widget');
    	if(false === $transient){
    		$args = array(
    			'post_type'    => '',
    			'taxonomy'     => 'genres',
    			'orderby'      => 'DESC',
    			'show_count'   => 1,
    			'hide_empty'   => false,
    			'pad_counts'   => 0,
    			'hierarchical' => 1,
    			'exclude'      => '55',
    			'title_li'     => '',
    			'echo'         => 0
    		);
    		$categories = get_categories($args);
    		$transient = '';
    		foreach( $categories as $category ) {
    			$transient .= '<a href="'.get_category_link( $category->term_id ).'" title="Смотреть онлайн '.$category->name.'">'.$category->name.'</a> <i>'.$category->count.'</i>');
    			);
    		}
    		set_transient('dooplay_genres_widget', $transient, MINUTE_IN_SECONDS*5);
    	}
    	echo $transient;
    } 

    и 2-ой

    $links = str_replace('<a>', '<a title=Ваш тайтл', $links );

    1-й код вообще ломает сайт

    ParseError thrown
    syntax error, unexpected ')

    stepan 3 года назад
    $transient  = '';
    foreach ( $categories as $category ) {
    	$transient .= '<a href="' . get_category_link( $category->term_id ) . '" title="Смотреть онлайн ' . $category->name . '">' . $category->name . '</a> <i>' . $category->count . '</i>';
    }
    echo $transient;

    Вот исправл участок код с первого решения.
    Если первое решение и есть ответ на ваш вопрос - тогда пользуйтесь.
    Потому что я до конца не понял вашего вопроса.
    реально ли он был такой легкий.

    Роман 3 года назад

    Да, это то, что нужно.
    Тайтлы появились как надо. Но, из первоначального кода пропали все стили, за которые отвечает код

    $links = str_replace('</a> (', '</a> <i>', $links);
    $transient = str_replace(')', '</i>', $links);

    Т.е. сейчас все ссылки просто в одну строку.

    Как бы теперь в итоговый код добавить строки отвечающие за стили ( В php я к сожалению не силен (

    # Get genres
    function doo_li_genres(){
    	$transient = get_transient('dooplay_genres_widget');
    	if(false === $transient){
    		$args = array(
    			'post_type'    => '',
    			'taxonomy'     => 'genres',
    			'orderby'      => 'DESC',
    			'show_count'   => 1,
    			'hide_empty'   => false,
    			'pad_counts'   => 0,
    			'hierarchical' => 1,
    			'exclude'      => '55',
    			'title_li'     => '',
    			'echo'         => 0
    		);
    		$categories = get_categories($args);
    		$transient  = '';
    foreach ( $categories as $category ) {
    	$transient .= '<a href="' . get_category_link( $category->term_id ) . '" title="Смотреть онлайн ' . $category->name . '">' . $category->name . '</a> <i>' . $category->count . '</i>';
    }
    		set_transient('dooplay_genres_widget', $transient, MINUTE_IN_SECONDS*5);
    	}
    	echo $transient;
    } 
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация