Статья размещена автором Бетке Сергей Сергеевич

Карта сайта или исправляем wordpress plugin Dagon Design Sitemap Generator

Карта сайта или исправляем wordpress plugin Dagon Design Sitemap Generator Для того, чтобы в блоге на базе wordpress построить карту сайта, можно воспользоваться плагином Dagon Design Sitemap Generator. Однако, что уже стало традицией, и здесь нам придётся “допилить напильником”. Обратите внимание на картинку, на ней показан дефект. Исправим его…

Приведу “дефектный” участок кода:

/* 
 * Generate page output
 */
function ddsg_display_pages($page_data, $num_pages, $page_start, $page_end, $comments_on_pages, $new_window, $show_page_date, $date_format) {
	$show_zero_comments = get_option('ddsg_show_zero_comments');
	if ($num_pages == 0) return "";
	if (($page_start == 0) && ($page_end == 0)) return "";
	$t_out = "";
	$t_out .= DDSG_PAGE_HEADER;
	$llevel = -1;
	for ($p = $page_start; $p <= $page_end; $p++) {
		$level = $page_data[$p]['level'];
		if ($level > $llevel) {
			$t_out .= '<ul>';
			for ($k = $llevel + 1; $k < $level; $k++) {
				$t_out .= '<li>' . ddsg_find_parent_page($page_data, $p, $k) . ' (continued)<ul>';
			}
		} 
		if ($level == $llevel) {
			$t_out .= '</li>';
		}
		if ($level < $llevel) {
			$t_out .= '</li>';
			for ($k = $llevel; $k > $level; $k--) {
				$t_out .= '</ul></li>';
			}
		}
		$the_title = htmlspecialchars(trim($page_data[$p]['title']));
		if ($the_title == '') {
			$the_title = DDSG_NO_TITLE;
		}
		$t_out .= '<li><a href="' . get_permalink($page_data[$p]['id']) . '"';
		$t_out .= ' title="' . strip_tags($the_title) . '"';
		if ($new_window) {
			$t_out .= ' target="_blank"';
		}
		$t_out .= '>' . $the_title . '</a>';
		if ($show_page_date) {
			// $t_out .= ' ' . date($date_format, strtotime($page_data[$p]['date']));
			$t_out .= ' ' . date_i18n($date_format, strtotime($page_data[$p]['date']));
		}
		if ($comments_on_pages) {
			if ($show_zero_comments || ($page_data[$p]['comments'] > 0)) {
				$t_out .= ' (' . $page_data[$p]['comments'] . ')';
			}
		}
		$llevel = $level;
	}
	$t_out .= '</li>' . "\n";
	for ($k = $llevel; $k > 0; $k--) {
		$t_out .= '</ul></li>';
	}
	$t_out .= '</ul>';
	return $t_out;
}

/* 
 * Generate post output
 */
function ddsg_display_posts($post_data, $num_posts, $post_start, $post_end, $comments_on_posts, $new_window, $show_post_date, $date_format) {
	$show_zero_comments = get_option('ddsg_show_zero_comments');
	if ($num_posts == 0) return "";
	if (($post_start == 0) && ($post_end == 0)) return "";
	$t_out = "";
	$t_out .= DDSG_POST_HEADER;
	$llevel = -1;
	for ($p = $post_start; $p <= $post_end; $p++) {
		$level = $post_data[$p]['level'];
		if ($level > $llevel) {
			$t_out .= '<ul>';
			for ($k = $llevel + 1; $k < $level; $k++) {
				$t_out .= '<li>' . strip_tags(ddsg_find_parent_post($post_data, $p, $k)) . ' (continued)<ul>';
			}
		} 
		if ($level == $llevel) {
			$t_out .= '</li>';
		}
		if ($level < $llevel) {
			$t_out .= '</li>';
			for ($k = $llevel; $k > $level; $k--) {
				$t_out .= '</ul></li>';
			}
		}
		if ($post_data[$p]['type'] == 'c') {
			$t_out .= '<li>' . DDSG_CAT_HEADER . ' ';
			$t_out .= '<a href="' . get_category_link($post_data[$p]['id']) . '"';
			$t_out .= ' title="' . strip_tags($post_data[$p]['title']) . '"';
			if ($new_window) {
				$t_out .= ' target="_blank"';
			}
			$t_out .= '>' . $post_data[$p]['title'] . '</a>';
		} else { 
			$the_title = htmlspecialchars(trim($post_data[$p]['title']));
			if ($the_title == '') {
				$the_title = DDSG_NO_TITLE;
			}	
			$t_out .= '<li><a href="' . get_permalink($post_data[$p]['id']) . '"';
			$t_out .= ' title="' . $the_title . '"';
			if ($new_window) {
				$t_out .= ' target="_blank"';
			}
			$t_out .= '>' . $the_title . '</a>';
			if ($show_post_date) {
//				$t_out .= ' ' . date($date_format, strtotime($post_data[$p]['date']));
				$t_out .= ' ' . date_i18n($date_format, strtotime($post_data[$p]['date']));
			}
			if ($comments_on_posts) {
				if ($show_zero_comments || ($post_data[$p]['comments'] > 0)) {
					$t_out .= ' (' . $post_data[$p]['comments'] . ')';
				}
			}
		}
		$llevel = $level;
	}
	$t_out .= '</li>';
	for ($k = $llevel; $k > 0; $k--) {
		$t_out .= '</ul></li>';
	}
	$t_out .= '</ul>';
	return $t_out;
}

Функция htmlspecialchars здесь явно лишняя (при условии использования WLW). Убиваем. Результат можно увидеть на карте сайта.

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка