Опубликовано 2 комментария

Новый виток или Зимняя сказочная Русь

Зимняя сказочная Русь

Зимняя сказочная РусьПомнится, не так давно было время, когда я активно увлёкся сайтоваянием и кодописанием на PHP и преимущественно для WordPress. Идей и энергии было больше, нежели возможностей и знаний. Но я лабал, активно лабал. Многое, правда, уже кануло в Лету. Сайт для Meantraitors оказался неконкурентоспособен по сравнению с Вконтактиком и со временем от него оказались. Сайт для организации «Мотодоноры детям» переделали после изменения моего статуса в этой организации, скажем так. Была ещё парочка мелких проектов, наброски для одного весьма дерзкого электронного каталога, но… Как-то в 2011 году — а я как раз был в возрасте Христа — изменились взгляды очень на многое. В том числе и на это своё хобби. Осознал, что тщетно это всё, пустое. И такое «детище» переживёт нас лишь на то время, покуда проплачен домен и хостинг.
Однако история развивается по спирали… Читать далее Новый виток или Зимняя сказочная Русь

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

Как избежать автоспама в WordPress’е.

Думаю, про такой метод, как «подмена полей» все слышали. Ну, если и не все, то очень многие. Достаточно муторный, но действенный метод. Единственный косяк — с этим методом можно забыть про автоматическое обновление движка. Только вручную и только с повторением этой процедуры после каждого обновления.
SunChaser как-то обмолвился про несколько иной (хотя и похожий) метод: подмена файлов. Суть в чём? За добавления комментария отвечает файл wp-comments-post.php и спамеры (авто) отправляют запрос именно к нему. Если за комментирование будет отвечать другой файл, то автоспам не пройдёт.
Исходи из этого, есть как минимум два варианта решения.
Читать далее Как избежать автоспама в WordPress’е.

Опубликовано 32 комментария

Вывод дочерних категорий в WordPress.

Недавно я писал, как можно вывести список подкатегорий одной из категорий в WP. Увы, сегодня обнаружил один косяк в этом алгоритме, из-за которого пришлось перекраивать функцию.
Предположим, у нас есть следующая структура категорий:
Читать далее Вывод дочерних категорий в WordPress.

Опубликовано 4 комментария

Вывод дочерних категорий в WordPress.

Понадобилось мне тут вывести список подкатегорий одной из категорий. Начал шерстить кодекс. Естественно, первым делом полез в wp_list_categories. Достаточно муторная функция с кучей вводных параметров. Но таки разобрался, вывел свои подкатегории. Сижу, смотрю и понимаю, что функция возвращает html-список, что меня совершенно не устраивает: разбивать эту здоровенную строку на составные и вычищать все тэги — да ну его на фиг.
Следующая функция, которая мне приглянулась — get_categories. В принципе, упрощённый вариант первой, но… Где-то косяк в ней с вводом родительской категории. Возвращает массив с параметрами первой же категории. Пришлось забросить и этот вариант.
Третий вариант — полное рукоблудство, но он работает.

function my_subcats ($parent) {
//$parent содержит название родительской категории
$parent_id = get_cat_id($parent); //получаем id родительской категории
$all_cats_ids = get_all_category_ids(); //получаем id ВСЕХ категорий
foreach ( $all_cats_ids as $cat_id ) {
	if (cat_is_ancestor_of($parent_id, $cat_id)) {  //проверяем, является ли категория с cat_id дочерней по отношению к $parent_id
 		$child_cats[] = get_cat_name($cat_id); //если дочерняя, то добавляем id  в массив
 	}
}
sort( $child_cats ); 
return $child_cats; //возвращаем сортированный массив названий подкатегорий
}

И вот над этим десятком строк пришлось биться три вечера. 🙁

Опубликовано 4 комментария

Генерация пароля средствами WordPress.

Наткнулся сейчас на весьма занятную функцию WP: wp_generate_password. Содержится она в файлике /wp-includes/pluggable.php Более подробно содержимое этого файлика рассмотрено в кодексе, но сама функция не расписана. Потому полез изучать код.
Функция генерирует пароли и имеет два входных параметра (второй не обязателен): количество знаков в пароле (integer) и использование спецсиволов в пароле (boolean).
Использование: wp_generate_password ( 10, true ) — генерирование десятизначного пароля со спецсимволами.
Возвращает, естественно, string.
Сама функция:

function wp_generate_password($length = 12, $special_chars = true) {
	$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
	if ( $special_chars )
		$chars .= '!@#$%^&*()';

	$password = '';
	for ( $i = 0; $i < $length; $i++ )
		$password .= substr($chars, wp_rand(0, strlen($chars) - 1), 1);
	return $password;
}

Как работает wp_rand - искать не буду: суть ясна и так. 🙂