Архив автора

  • Атрибут title в ссылках из функции the_terms ()

    0

    Мне потребовалось добавить атрибут title к ссылкам, генерируемым функцией the_terms (), которая выводит список термов поста (категорий и тегов например).

    По умолчанию функция выводит код типа:

    <a rel="tag" href="http://www.site.com/places/russia/moscow">Москва</a>

    А мне хотелось, чтобы в ссылке был атрибут title, который содержал бы название родительского терма. Например, у нас есть иерархическая таксономия, содержащая список стран и городов, и пост относится к терму «Москва». Тогда в атрибуте title у нас должно быть написано «Россия, Москва». Парился я долго, искал элегантное решение, но почему-то все элегантные решения требовали очень много кода =( Тогда я сделал грязно, но быстро =) Вот так:

    add_filter ('term_link', 'add_title_attribute', 20, 3);
    function add_title_attribute($termlink, $term, $taxonomy) {
    	if ($taxonomy == 'places' AND $term->parent) {
    		$parent = get_term($term->parent, 'places');
    		return $termlink.'" title="'.$parent->name.', '.$term->name;
    	}
    	return $termlink;
    }

    Это нужно засунуть в functions.php вашей темы. Тут происходит проверка названия таксономии, если она называется «places», и если у нее есть родитель ($term->parent) то мы добавляем к URL терма ($termlink) текст, закрывающий атрибут href (то есть, кавычки), и дописываем title с нужным содержимым, но без закрывающей кавычки.

    Я предупреждал, что код грязный, однако он пока работает везде, где применен. В идеале нужно фильтровать терм, добавлять в его объект новый атрибут, затем фильтровать функцию, генерирующую код ссылки, и добавлять туда title.

    Выяснилось, что такая комбинация конфликтует с функцией wp_tag_cloud () которая создает облако тегов (термов). Я это не сразу заметил, так как у меня написана своя функция построения облака, и я использую ее, если есть такая необходимость. Кто решит эту проблему — черкните плиз в комменты.

  • Как починить базу данных Wordpress

    0

    Иногда база данных блога ломается, притом ломается так, что даже в админку не попасть. При этом сайт пишет, что базу данных нужно отремонтировать. Кто-то сразу бежит в phpMyAdmin или в панель управления хостингом, если такой функционал предусмотрен. А на самом деле ничего этого не нужно, просто допишите в wp-config.php строку define ('WP_ALLOW_REPAIR', true); и нажмите ссылку, которая указана в присловутой ошибке вордпресса. Когда база починится, удалите эту константу.

  • Снова о защите продажных ссылок

    0

    Уже писал ранее о способе защиты продажных ссылок, там был универсальный способ, где вырезались все левые GET-параметры из запроса. К сожалению в ряде случаев от не работает, например при отправке запроса без GET-параметров, но со знаком «?» (типа http://www.site.ru/?). Сначала хотел переписать тот код и убрать эту проблему, но затем решил изучить код САПы и Меинлинка (использую эти две биржи) и понять суть.

    Оказалось, что в коде Меинлинка уже есть все необходимое для защиты, просто ссылки нужно отображать не через $ml->Get_Links (), а через $ml->Get_Links_Protected (). Надо было курить маны по установке =)

    В САПе нет такой функции, зато можно переопределить опцию request_uri при вызове кода! Поэтому я переписал код вызова так:

    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
     $o['host'] = 'www.site.ru';
    if ($_SERVER['REDIRECT_URL']) $o['request_uri'] = $_SERVER['REDIRECT_URL'];
    else $o['request_uri'] = '';
    $o['charset'] = 'UTF-8';
    $sape = new SAPE_client($o);
    unset($o);

    Магия тут во второй и третьей строке, переопределяется, какой адрес страницы будет искать код сапы в своей базе ссылок для вашего сайта. Переменная $_SERVER['REDIRECT_URL'] содержит название запрашиваемого документа без GET-параметров! Например, если в адресной строке запрошен адрес http://www.site.ru/category/page.html?link=1, то в этой переменной будет только /category/page.html! То есть, с какими бы GET-параметрами не запросили страницу, сапа все равно будет искать один и тот же адрес в базе ссылок. REDIRECT_URL для главной страницы сайта не указывается, поэтому в опции сапы передается пустая строка. На нормально сконфигурированном Апаче и PHP и включенном ЧПУ все работает идеально, как будет работать с другими серверами и настройками я не знаю, для меня это темный лес пока =)

  • Оригинальный способ отправки резюме

    3

    Многие по-настоящему целеустремленные профессионалы, как правило, имеют список компаний, в которых они бы хотели работать. Проблема в том, что в этих компаниях хотят работать не только они, претендентов хватает, а в период кризиса их стало еще больше. Можно, конечно, отправить свое резюме в эти компании и надеяться, что когда-нибудь вас заметят и пригласят на какую-нибудь более-менее подходящую должность, но будьте уверены, это случится не скоро. Куда лучше проявить творческий подход и выделить себя среди толпы конкурентов! Об одном таком творческом подходе хотел бы сегодня рассказать.

    Один американец мечтал о работе в одной из пяти рекламных агенств, но банальной отправкой своего резюме он не ограничился, а проявил гибкость ума и творческий подход. Он использовал систему Google AdWords, которая позволяет отображать рекламные объявления в результатах поиска в Гугле по ключевым словам. В качестве ключевых слов он указал имена генеральных директоров этих компаний, а в тексте объявлений написал примено следующее: «Здравствуйте! Искать себя в сети полезно, но принять меня на работу будет еще полезнее!».

    Поняли фишку? Многие люди, особенно в рекламном бизнесе, часто ищут в сети свое имя и имя своей компании, чтобы всегда быть вкурсе что о них пишут другие. И при очередном таком мониторигне, генеральный директор увидин на первом месте такое вот объявление! Если он перейдет по нему, то сможет прочитать резюме соискателя!

    Ну разве не прелесть? Стоти ли говорить, что меньше чем за месяц, этот парень получил целых два предложения от двух компаний, в которых он мечтал работать? Невероятный результат!

  • Перезагрузка мозга

    4

    Сегодня мой знакомый рассказал мне об интересном способе «перезагрузки» мозга, чтобы снять с него усталость и продолжать работать. Нужно это для поддержки аврального образа жизни, который, к сожалению, сейчас ведут многие. Сразу оговорюсь: способ помогает только снять симптом усталости, вы будете чувствовать себя свежим и выспавшимся, пропадет вялость и тяжесть в конечностях.

    Нам потребуется 15 минут свободного времени, чашка кофе, и возможность уединиться и поспать.

    Итак, вы устали, валитесь сног... залпом выпиваете чашку кофе и ложитесь спать. Предварительно поставьте будильник на 15 минут. За это время оргазизм сможет побывать только в стадии быстрого сна, в которой, судя по данным википедии, происходит упорядочивание информации, но не успеет провалиться в медленный сон. Через 15 минут вас разбудит будильник, и вы будете чувствовать себя как после нормального восьмичасового сна!

    Если провалитесь в медленный сон, то скорее всего будильник вас даже не разбудит, а если и разбудит, вы будете себя чувствовать разбитым и подавленным, так что не ставьте будильник больше чем на 15 минут.

    Тело после такого сна не отдохнет, но голова будет свежая и вы снова сможете думать =)

  • Защита продажных ссылок

    3

    Озаботился не так давно защитой своих сайтов от детекторов продажных ссылок, типа http://www.venality.ru. Если вы не защищаете продажные ссылки, попробуйте ввести туда адрес страницы, на которой у вас проданы ссылки, он скорее всего определит их. Работает он просто: к адресу страницы добавляются динамические параметры, вроде ?sape=1, в результате чего страница для скрипта биржи ссылок становится уже другой, и ссылки с нее пропадают. Хотя, ппо факту, ничего другого на странице не меняется.

    Конечно, сомнительно, что поисковики будут так фильтровать продажные ссылки, но лучше перестраховаться =)

    В сети полно скриптов на эту тему, некоторые занимают по 100 и больше строк! Я обошелся всего двумя =) Но скажу сразу, у меня почти все сайты на Wordpress, и скрипт писался именно под вордпресс с включенным ЧПУ. Вот эти строки нужно добавить в шаблон header.php, они должны быть самыми первыми, до тега HTML и DOCUTYPE:

    < ?
    $url = explode('?', $_SERVER['REQUEST_URI']);
    if ($url[1] AND (!$_GET['s'])) header('Location: http://'.$_SERVER['HTTP_HOST'].$url[0]);
    ?>

    В первой строке мы делим URL-адрес на две части: в одной адрес самой страницы, типа index.html, а в другой — все дополнительные параметры, все, что после знака вопроса.

    Во второй строке мы проверяем, есть ли что-то во второй части адреса, и не производился ли поиск ($_GET['s'] проверяет, не установлена ли переменная s, в кооторой задается строка поиска в вордпрессе)

    Если есть какие-то дополнительные параметры в строке, и если это не строка поиска, то идет перенаправление на страницу без параметров. Элементарно =)

    На самом деле, мне кажется тут нужно быть немного строже, делать не перенаправление, а отдавать ошибку 404, типа «страница не найдена», ибо это логично — нет такой страницы, с такими параметрами. Посмотрите, например, как сделано в Гугле, если подставить левый параметр, то выдается ошибка 404.

    Если кто хочет отдавать ошибку, то замените вторую строку скрипта на:

    if ($url[1] AND (!$_GET['s'])) header('HTTP/1.0 404 Not Found');

    Я пока поставил оба варианта, на разных сайтах. Ни один детектор продажных ссылок не определяет факт продажности =) Пользуйтесь, на здоровье!

    Кстати, спустя какое-то время доработал скрипт, теперь уже в две строки не уложился, зато предусмотрен список разрешенных параметров, которые не выбрасываются, зато все остальные вырезаются. Вот он:

    < ?php
    $url = explode('?', $_SERVER['REQUEST_URI']);
    $allows = array('s', 'cid', 'replytocom', 'action', 'ads_basecat', 'page_id', 'ADS_EDIT_POST');
    parse_str($url[1], $qv);
    foreach ($qv as $key => $val) {
    	if (in_array($key, $allows)) $q[] = $key.'='.$val;
    	else $dis = 1;
    }
    if ($dis == 1) {
    	if (sizeof($q) != 0) header('Location: http://'.$_SERVER['HTTP_HOST'].$url[0].'?'.implode('&', $q));
    	if (sizeof($q) == 0) header('Location: http://'.$_SERVER['HTTP_HOST'].$url[0]);
    }
    ?>

    В переменную $allows вписываем все параметры, которые нам не надо вырезать (через запятую, и в апострофах). В данном скрипте у меня записаны некоторые переменные вордпресса и плагинов, которыми я пользуюсь.

  • Модифицируем галерею Wordpress

    10

    Для сайта с рецептами приготовления блюд с иллюстрациями каждого шага, потребовалась простая и наглядная система добавления шагов-рисунков с кратким описанием каждого шага. В стандартной галерее вордпресса (шорткод GALLERY) уже реализован весь необходимый функционал: можно пачкой загружать фотки, прописывать к ним названия, описания и выводить в нужном порядке. Однако есть несколько «НО»:

    • невозможно в галерее вывести описание к изображению, его можно вывести только в шаблоне приложений, типа image.php, но нам нужно вывести их на странице самого поста.
    • невозможно как-то значительно влиять на дизайн галереи, мы не можем, например, физически переместить заголовок изображения выше самого изображения (по умолчанию заголовок идет как подпись под картинкой)

    В общем, разработчикам вордпресса есть еще над чем работать, надеюсь, в третьей ветке значительным изменениям подвергнется и стандартная галерея, тогда можно будет со спокойной душой выкинуть тормознутые галереи-плагины типа «NextGEN Gallery». Кстати, используя данный плагин вполне возможно выполнить поставленную задачу, однако такое решение выглядит несколько туповато, учитывая что все необходимые возможности уже реализованы в стандартной галереи, и все дело лишь в ее внешнем виде. Зачем изобретать велосипед, если можно просто его модернизировать?

    Модернизируем наш «велосипед»

    Любителям на досуге пописать плагинчики для вордпресса конечно же известны функции add_shortcode и remove_shortcode, первая регистрирует, а вторая удаляет регистрацию  шорткода. Шорткоды, если кто не знает, это специальные кодовые слова, которые можно прописывать прямо в теле статьи, и которые вызывают какую-то функцию. Например, шорткод CAPTION служит для вставки изображения с подписью, а шорткод GALLERY — необходимую нам стандартную галерею вордпресс.

    Нам нужно всего лишь переписать функцию вывода на экран галереи и сделать так, чтобы шортег GALLERY вызывал именно нашу функцию, а не стандартную. Сделать это проще, чем вы можете подумать =)

    В первую очередь нам нужно отключить стандартную функцию галереи. Открываем файл functions.php, и вставляем в конец файла (до знака «?>») строку:

    remove_shortcode('gallery');

    Затем нам нужна новая функция вывода галереи. Крутые программисты наверняка напишут ее сами, но лично мне нужно всего лишь добавить пару фишек к стандартной галерее, поэтому я просто немного изменю стандартную функцию, текст которой находится в файле wp-includes/media.php и называется gallery_shortcode. Файл большой, поэтому воспользуйтесь функцией поиска.

    Для версии вордпресс 2.9.2 эта функция выглядит так:

    function gallery_shortcode($attr) {
    	global $post, $wp_locale;
     
    	static $instance = 0;
    	$instance++;
     
    	// Allow plugins/themes to override the default gallery template.
    	$output = apply_filters('post_gallery', '', $attr);
    	if ( $output != '' )
    		return $output;
     
    	// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
    	if ( isset( $attr['orderby'] ) ) {
    		$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
    		if ( !$attr['orderby'] )
    			unset( $attr['orderby'] );
    	}
     
    	extract(shortcode_atts(array(
    		'order'      => 'ASC',
    		'orderby'    => 'menu_order ID',
    		'id'         => $post->ID,
    		'itemtag'    => 'dl',
    		'icontag'    => 'dt',
    		'captiontag' => 'dd',
    		'columns'    => 3,
    		'size'       => 'thumbnail',
    		'include'    => '',
    		'exclude'    => ''
    	), $attr));
     
    	$id = intval($id);
    	if ( 'RAND' == $order )
    		$orderby = 'none';
     
    	if ( !empty($include) ) {
    		$include = preg_replace( '/[^0-9,]+/', '', $include );
    		$_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
     
    		$attachments = array();
    		foreach ( $_attachments as $key => $val ) {
    			$attachments[$val->ID] = $_attachments[$key];
    		}
    	} elseif ( !empty($exclude) ) {
    		$exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
    		$attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
    	} else {
    		$attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
    	}
     
    	if ( empty($attachments) )
    		return '';
     
    	if ( is_feed() ) {
    		$output = "\n";
    		foreach ( $attachments as $att_id => $attachment )
    			$output .= wp_get_attachment_link($att_id, $size, true) . "\n";
    		return $output;
    	}
     
    	$itemtag = tag_escape($itemtag);
    	$captiontag = tag_escape($captiontag);
    	$columns = intval($columns);
    	$itemwidth = $columns > 0 ? floor(100/$columns) : 100;
    	$float = $wp_locale->text_direction == 'rtl' ? 'right' : 'left'; 
     
    	$selector = "gallery-{$instance}";
     
    	$output = apply_filters('gallery_style', "
    		<style type='text/css'>
    			#{$selector} {
    				margin: auto;
    			}
    			#{$selector} .gallery-item {
    				float: {$float};
    				margin-top: 10px;
    				text-align: center;
    				width: {$itemwidth}%;			}
    			#{$selector} img {
    				border: 2px solid #cfcfcf;
    			}
    			#{$selector} .gallery-caption {
    				margin-left: 0;
    			}
    		</style>
    		<!-- see gallery_shortcode() in wp-includes/media.php -->
    		<div id='$selector' class='gallery galleryid-{$id}'>");
     
    	$i = 0;
    	foreach ( $attachments as $id => $attachment ) {
    		$link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
     
    		$output .= "< {$itemtag} class='gallery-item'>";
    		$output .= "
    			< {$icontag} class='gallery-icon'>
    				$link
    			";
    		if ( $captiontag && trim($attachment->post_excerpt) ) {
    			$output .= "
    				< {$captiontag} class='gallery-caption'>
    				" . wptexturize($attachment->post_excerpt) . "
    				";
    		}
    		$output .= "";
    		if ( $columns > 0 && ++$i % $columns == 0 )
    			$output .= '<br style="clear: both" />';
    	}
     
    	$output .= "
    			<br style='clear: both;' />
    		</div>\n";
     
    	return $output;
    }

    Эту функцию нужно просто вставить в файл functions.php вашей темы и внести нужные вам изменения. Скорее всего потребуются небольшие знания PHP. Я всего лишь добавил следующий код:

    		if (trim($attachment->post_content) ) {
    			$output .= "
    				< {$captiontag} class='gallery-description'>
    				" . wptexturize($attachment->post_content) . "
    				";
    		}

    сразу после:

    		if ( $captiontag && trim($attachment->post_excerpt) ) {
    			$output .= "
    				< {$captiontag} class='gallery-caption'>
    				" . wptexturize($attachment->post_excerpt) . "
    				";
    		}

    Благодаря этой вставке, в галерее теперь будут отображаться описания к файлам. Все просто!

    Если не хотите, чтобы в галерее отображалась миниатюра, просто замените строку:

    'exclude'    => ''

    На:

    'exclude'    => get_post_meta($post->ID, '_thumbnail_id', 1)

    Теперь нужно снова включить шортаг GALLERY, но уже с нашей функцией. Кстати, название функции необходимо изменить, иначе это вызовет фатальную ошибку (старая функция галереи все еще доступна в файле media.php, и я не советую ее удалять!) Просто переименуйте функцию из gallery_shortcode в, например, new_gallery_shortcode.

    Чтобы шортаг снова заработал, добавьте в functions.php строку:

    add_shortcode('gallery', 'new_gallery_shortcode');

    Она должна быть после remove_shortcode и нашей новой функции.

    Кстати, не обязательно отключать функцию стандартной галереи, можно сделать все тоже самое, но в add_shortcode написать, например:

    add_shortcode('new_gallery', 'new_gallery_shortcode');

    Тем самым мы создадим новый шорткод NEW_GALLERY и сможем его использовать при написании поста (ставлять придется ручками, в режиме HTML. Таким макаром можно связать любую функцию с шорткодом, какую захотите!

    Вот, собственно, и все =) Сохраняем файл и смотрим результат! Для людей, немного знакомых с программированием, не будет проблемой дописать любые фишки к стандартной галерее, и значительно расширить ее функционал, без всяких плагинов.

  • Wordpress 3.0, как же я тебя жду!

    0

    Решил я присоединиться к волне блоггеров, пишуших о грядущей третьей версии популярного движка. Правда волну я буду гнать в другую сторону =)

    Ребят, это здорово, это классно, это охренительно! Теперь можно создавать свои типы постов, свою таксономию к ним (теги, категории), свои меню, куда теперь можно включить категории, страницы, свои ссылки! Вы только представьте, какие возможности у плагиноделов появляются с таким функционалом! Совсем скоро появятся специальные сборки тем, адаптированных для автосайтов, сайтов кино, новостей и прочего. Не просто темы с дизайном под автотематику, а с полным набором разделов (в админке) для ведения подобного сайта, с виджетами, менюшками, типами постов и тому подобным!

    Теперь, благодаря слиянию WP и WPMU появилась возможность создавать, а главное расширять в дальнейшем, комьюнити пользователей на сайте. То есть, как только назревает потребность в расширении возможностей пользователя на сайте, не придется перерывать кучу плагинов в поисках нужного функционала, не придется адаптировать эти плагины к уже существующим, да практически вообще ничего не придется делат! Изменили пару настроек и вперед!

    Боже, сколько ночей я потратил на то, чтобы нормально настроить шаблоны по категориям, разбить теги по категориям, сделать несколько независящих друг от друга разделов на сайте, чтобы в каждом была своя фишка, свои особенности! Сколько пересматривал плагинов в поисках того единственного, который хоть как-то можно использовать, пусть и с переделками... Все это теперь можно будет сделать за минуты, притом даже без знания программирования и без плагинов!

    Вордпресс превращается в CMS. Немного запоздало, так как очень многие именно как CMS ее и используют уже давно, но уж лучше поздно =) И я бесконечно рад этому факту! Хочу хотя бы со страниц своего блога выразить благодарность всем разработчикам и активным тестерам вордпресса: ребята, вы делаете по-настоящиму удобную, простую, но современную CMS, именно такой, какой она нужна в данный момент многим!

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

  • Вставляем изображения в комментарии wordpress

    6

    Озаботился я сегодня проблемой вставки изображений в комментарии. То есть, стояла задача: дать комментаторам возможность вставлять свои изображения в комментарии. На самом деле, для этих целей нашелся уже готовый плагин (ну как за это не любить вордпресс?) под названием Comment Image, он делает именно то, что нужно! Более того, он еще автоматически создает миниатюры и автоматически вставляет их в тело комментария со ссылкой на оригинал. Настроек у скрипта минимум:

    Страница настроек плагина

    Image selection field — это метод вставки поля для загрузки изображения в форму.

    1. Inject via WordPress hook — вставит это поле автоматически, используя средства вордпресса. В большинстве случаев сработает, но если шаблон делался через заднее место, то ничего не отобразится
    2. Inject via Javascript — поле вставится через яваскрипт. Сработает обязательно, если у пользователя в браузере разрешены эти самые скрипты. В принципе, разрешены они сейчас у всех.
    3. Do not inject, manually added — это если вы сами захотите вставить поле в шаблон. Ручками =)

    В последнем случае вам нужно будет отредактировать файл comment.php в вашем шаблоне, найти там форму отправки комментария и вставить код, вроде этого:

    <input class="image" name="image" size="32" type="file" tabindex="4" />
    <label for="url">Приложить изображение (JPEG)</label>

    Не забыть сохранить его на сервере в кодировке UTF-8 без BOM.

    Image field label — это текст рядом с полем загрузки.

    Thumbnail width — это ширина создаваемой плагином миниатюры. Кстати, все миниатюры сохраняются в автоматически созданную папу /wp-content/comment-image/. Плюс этого в том, что все создается и сохраняется автоматически. Минус в том, что многие выносят папку uploads из папки wp-content, чтобы разделить пользовательское содержимое от программной части. Мелочь, думаю исправит автор в следующий релиз.

    Вот как все выглядит в итоге:

    Комментарий с загруженным рисунком

    Казалось бы, все готово, можно выпускать новую фичу на сайт? А нифига! Картинка в коммент загружается, ссылка с миниатюры на оригинал стоит, но вот мой любимый плагин lightbox 2 не хочет эти картинки делать всплывающими, при клике тупо загружается оригинал в браузере =(

    В принципе, причина нашлась быстро. Лайтбокс обрабатывает только текст статьи и ее анонс, а тексты комментариев не умеет (ну кто ж мог подумать, что кто-то научит вордпресс вставлять изображения и в комментарии?). Думаю, большинство подобных лайтбоксу плагинов этого не умеют делать, я не стал перебирать их, и буду вам признателен, если вы отпишитесь, с каким плагином у вас заработало.

    Я просто научил свой лайтбокс обрабатывать комментарии, и сейчас научу вас, как это сделать на вашем блоге и с вашим любимым плагином для изображений =)

    Открываете основной файл плагина, обычно он лежит в папке /wp-content/plugins/плагин/плагин.php и ищите там строку:

    add_filter('the_content'

    Именно такую, так как продолжение ее может отличаться в зависимости от плагина. Для Lightbox 2 она выглядит так:

    add_filter('the_content', 'autoexpand_rel_wlightbox', 99);

    Нам нужно добавить точно такую же строку после нее, только the_content поменять на comment_text, сохранить файл и залить его назад на сервер. Все =) Теперь изображения из комментариев тоже всплывающие.

    Если вы тоже пользуетесь плагином Lightbox 2, то можете просто скачать исправленную версию lightbox-2.

    Удачного дня =)

  • Проверяйте темы Вордпресс!

    0

    Назрела необходимость сменить дизайн на одном сайте. Так как он на вордпрессе, решил поискать готовые варианты и потом обработать напильником. Думаю, многие так делают. Погуглил сайты тем по нужным мне ключевикам, нашел приличный шаблон, скачал, сунул на сайт и включил в предпросмотре, чтобы отредактировать все что мне нужно в живую, как говорится.

    Мама родная, залез в single.php и офигел! Нет, многие бы и не заметили этого, но у меня уже глаз наметан: наровне с функцией bloginfo (), которая запрашивает основные данные о блоге, вроде заголовка и описания, там использовалась еще и bloqinfo (), то есть «q» вместо «g». Залез в functions.php и посмотрел, что делает эта функция. Оказалось ничего страшного, она просто показывает ссылки на сайт засранца. Притом они были скрытые, в таблицу стилей был добавлен особый класс с display:none для таких ссылок.

    В общем, господа, не стоит доверять всему, что вы скачиваете, даже если это крупные сборники чего-либо. Скачав новую тему для вордпресса или любого другого движка, обязательно проверьте исходники шаблона на наличие подобных вставок, если вы разбираетесь в программировании. Либо просто откройте исходный код страницы после активации шаблона, и найдите все ссылки, например по сочетанию «http://».

Page 1 of 3123»