Просмотр архивов по тагу: ‘Кодинг’
Сегодня прямо день консультаций по WordPress. Буквально сейчас упало в почту сообщение с сайта с просьбой помочь разобраться в простом вопросе. Ответить почтой не получилось, т.к. Яндекс думает, что email отправителя не существует. Цитирую вопрос:
Никак не могу разобраться с Blogroll-ом в WP-2.2.1…
Вопрос 1: как его убрать из рубрикатора (списка категорий)?
Вопрос 2: как создавать разделы ссылок? Например, один раздел «ссылки» в колонке, второй — «реклама» в подвале.
Вопрос 1. Честно говоря, у меня такой проблемы никогда не возникало. Не думаю, что здесь есть какой-то особый секрет. В любом случае: категории для ссылок я создавал всегда в разделе «Links», а обычные категории добавлял через «Manage -> Categories». Может в этом кроется ответ на данный вопрос.
Вопрос 2. Ну это совсем просто. Нужно было только в Codex заглянуть. Функция get_links (); отвечает за вывод ссылок в WP:
get_links( category, 'before', 'after', 'between', show_images, 'order', show_description,show_rating, limit, show_updated , echo);
Пример. Есть 2 категории в линках: Друзья (id=1) и Реклама (id=2). ID можно узнать в общем списке категорий.
Для сайдбара «Друзья»:
get_links(1,'before', 'after', ' ', FALSE, 'name', FALSE, FALSE, -1, TRUE, TRUE);
Для футера «Реклама»:
get_links(1,'before', 'after', ' ', FALSE, 'name', FALSE, FALSE, -1, TRUE, TRUE);
* Примечание. WP съедает html код в примерах, поэтому обратите внимание следующее:
before — это открытие списка (таг LI в скобочках)
after — соотвественно закрытие
Вообщем, все предельно просто. Ответы лежат в изучении английского языка и Codex WordPress.
Из личного опыта. Есть 2 основных способа конвертации midi файлов в формат mp3. В первом случае Вам не повезело — у Вас Microsoft Windows (не важно какой версии) и Вам нужно будет покупать специальный софт и использовать режим live для такой конвертации.
Почему live? Потому что весь софт под винду делает конвертацию midi в mp3 путем проигрывания файла и переписывания в wav, а потом сжимания в mp3. Это крайне не удобно, потому что:
1) Ваша звуковая карта может не иметь midi-маппера (например, встроенный звуковой чип в мат.плату) — это нужно, чтобы избежать сторонних звуков в wav файле
2) Если это batch сотни midi файлов, то это займет до фига времени
НО! Вам повезло, если у Вас есть линукс (или вообще любая *nix ОС). Делюсь опытом и предлагаю вам очень простой способ, который сделает батч из 300-350 файлов примерно за 10-15 минут (зависит от «железа»). BASH-скриптинг — это вообще необходимая вещь в консоли. Итак, создаем файл midi2mp3.sh и пишем в него следующее:
BASE=/home/slaff/converting
for file in $BASE/midi/*.mid
do
out=`basename $file .mid`
echo «$file $out»
MP3OUTPUT="$BASE/$out.mp3"
if [ ! -e "$MP3OUTPUT" ]
then
timidity $file -Ow -o"./$out.wav"
lame --scale 2 --resample 11.025 -b 16 «$out.wav» «$MP3OUTPUT»
rm -f $out.wav
fi
done
Чтобы это работало, Вам понадобиться 2 библиотеки:
- TiMidity++ — это софтверный синтезатор.
- lame — всем известный mp3 кодек.
Скрипт довольно простой и понятный. Сначала мы задаем абсолютный путь к папке, где будем конвертировать. Затем цикл, в котором указываем директорию в midi-файлами. После чего идет конвертация в WAV и далее сжатие в mp3 и сохранение файла в указанной выше директории $BASE.
Положите этот скрипт где-нибудь рядом, в туже папку например. Запустите в консоли и будет вам счастье и куча съэкономленного времени.
Прочитал две статьи на тему «Как создать шаблон для WordPress» и был крайне удивлен подходу создавания шаблона. На мой взгляд, оба описания предлагают более трудоемкий и непрактичный подход. Я не люблю долго возиться с шаблонами и предпочитаю группировать все элементы как можно плотнее, избегая при этом лишнего кода. Отчего мои верстки для WP не страдают насыщенностью запросов.
В связи с этим я тоже решил поделиться своим опытом и предложить свой метод создания шаблона с нуля, который, на мой взгляд, практичнее и удобнее. Хочу отметить, что данный ebook — это мой личный опыт и я постарался наиболее просто показаться свой метод создания шаблона для WordPress.
Особенности моего метода — это компактность, практичность, удобство и универсальность. В ebook'е приведены полные листинги кода, этот же код я использую как базовый в шаблоне Slaff @ Reworked и других свох блогах. Я намерянно опустил ту часть, в которой следовало бы рассказать о CSS, потому что это несколько другая тема.
Скачайте и прочитайте ebook «WordPress Cookbook. Создание шаблона с нуля.» Распространяйте эту книжку в любом виде.
Столкнулся с тем, что в highlight.js текст не переноситься, а скролиться в блоке PRE. Я предпочитаю, чтобы текст переносился автоматом. Для этого существуют специальные css-свойства. Ниже привожу универсальный метод для всех броузеров и версий css, которым собственно и пользуюсь сам:
pre {
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 2.1/3 */
white-space: -moz-pre-wrap; /* Mozilla */
white-space: -hp-pre-wrap; /* HP printers */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: -pre-wrap; /* Opera 4-6 */
word-wrap: break-word; /* Только для динозавра IE */
}
Для скролинга же блока используется «overflow: auto», чтобы отключить скроллинг и обрезать линию «overflow: hidden», а чтобы без скроллинга и полной линией текста «overflow: off;».
А я уже рассказывал как вывести списком «Любимые записи» aKa Noteworthy? Это плагин, который до сих пор находиться в beta-стадии. Мода, ага. Нам по фиг, скачиваем и устанавливаем его. Нужно будет сделать категорию специальную (noteworthy, evergreens, favorites, фигня — как вам угодно). Записи, котороые будут в этой категории можно помечать, например в цикле, каким-нибудь сердечком или как делаю это я допонительно — вывожу отдельный список на странице с архивами, это мои самые любимые посты в блоге.
Чтобы сделать такой же список, Вам понадобиться этот php код (css на усмотрение, у меня обычный список ul/li):
< ?php if (function_exists(nw_noteworthyLink)) { ?>
<div class="sidebox">
<h2>Любимые записи</h2>
<ul>
< ?php
# numberposts=10 - указываем кол-во ссылок (постов)
# category=28 - id любимой категории
# $luv - переменная для цикла foreach, можете поменять её название на любое другое
$luv = get_posts('numberposts=10&category=28'); ?>
< ?php foreach($luv as $post) : ?>
<li><a href="< ?php the_permalink(); ?>" rel="bookmark">< ?php the_title(); ?></a></li>
< ?php endforeach; ?>
</ul>
<p align="right"><a href="< ?php echo get_settings('siteurl'); ?>/category/noteworthy/feed/" title="RSS для Любимых записей" class="feedlink">Подписаться на RSS</a></p>
</div>
< ?php } ?>
Таким образом, выводиться список моих любимых постов с прямой ссылкой на них. В качестве названия используется название самого поста.
Можно изменить подход. Если убрать проверку на существование функции (т.к. фактически это проверка на существование одной из категорий (буржуи — они такие)) и проверять id категории или точное местонахождение (главная, постраничный просмотр, отдельная страница etc.), то можно вывести подобный списко для любой категории.
Пользуйтесь в своё удовольствие ;).
На многих wp-блогах на странице с архивами пишется количество постов, комментариев, категорий во всём архиве блога. Это легко сделать. Если вы еще не нашли решение (см. шаблон динозавра К2), то вот мини howto.
1) Нам нужен php код с запросом к базе данных, который посчитает количество постов, комментариев и т.д.:
< ?php
/* Количество постов */
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts);
/* Количество комментарие */
$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms);
/* Количество категорий */
$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
if (0 < $numcats) $numcats = number_format($numcats);
?>
Этот код вставляете до вызова get_header (); и в body простым echo ($numposts, $numcomms, $numcats) выводите это значение.
Кстати, для таких вот симпотичных архивов Вам понадобиться 2 плагина: Extended Live Archives и Ultimate Tag Warrior .
В Google группе «Вэб-мастер Клуб» проскочила ссылка на новый IDE для разработки вэб приложений на основе AJAX под названием «Aptana». Не поленился, скачал и попробовал.
Глубоко не стал копать, т.к. меня заинтересовало насколько в нём было бы удобно кодить, работать с html и css, ну и главное — посмотреть как работает этот IDE c различными js-библиотеками.
Для себя отметил следующие моменты:
1) Очень легко и понятно организована работа с библиотеками. Я еще не встречал таких редакторов, чтобы автоматически дополняли код функциями прямо из подключенной библиотеки.
2) Автодополнение html, css и js кода. Очень хорошо сделано — вот этого очень не хватает Dreamweaver'у, да и многим другим редакторам.
3) Помимо автодополнения еще хорошо разбивает код на отступы между тагами. Удобная, на мой взгляд, табуляция, оптимальная я бы сказал.
4) Подсветка ошибок. Не знаю, не очень что-то там подсвечивает ошибки.
Aptana кроссплатформенный редактор (Win, Linux, Mac) работает на Java JRE, т.е. жрёт память и нагружает процессор только в путь. Мне вообще не нравятся такие редакторы на Java. Считаю, что есть лучше и намного удобнее. Но, думаю, при наличии хорошего железа (1Gb Ram & P4 и выше) для начинающих в AJAX будет весьма полезным софтом.
Кстати, на оффсайте есть много скринкастов. Посмотрите, это любопытно.
Иногда нужно в обычной вэб-форме выполнить такую хитрую задачу, как взаимоисключаемые чекбоксы ('mutual checkboxes'). И нужно, чтобы это были не radio-кнопки, а именно checkbox'ы.
Предположим, есть группа опций и в ней по умолчанию приходит одна опция с атрибутом checked, назовём её «Main option». А наше условие — это при включении любой другой опции, первая (Main Option) отключалась. И тоже самое в обратном порядке — при включении Main Option отключались все включенные.
Еще один важный момент, мы все поля input имеют в нашем примере одинаковое имя (name), но разные значения (values). Взгляните на пример. Это то, что вы искали?
Решается эта задача простым javascript'ом:
<script language="JavaScript" type="text/javascript"><!--
function choice(field, i) {
if (i == 0) { // default checkbox selected.
if (field[0].checked == true) {
for (i = 1; i < field.length; i++)
field[i].checked = false;
}
}
else { // on selecting any checkbox the default is null.
if (field[i].checked == true) {
field[0].checked = false;
}
}
}
// -->
</script>
В этом скрипте есть функция choice, которая и определяет все действия. Важно запомнить пару вещей при его использовании. Разумеется, его можно линковать в head или вставлять как он есть (см. код выше).
Продолжить чтение ...
ногие интересуются как создать статичную страницу наподобие вот этой http://www.slaff.net/movies/ . Делается всё довольно просто. От вас потребуется небольшое знание html и только.
Нужно всего лишь сделать 2 шага, создавая такую страницу:
1) Сделать шаблон
2) Создать в админке Wordpress новую страницу на базе шаблона из пункта 1.
Второй шаг предельно прост и ясен. Сложности, т.е. хитрости находяться в первом шаге. Итак, cоздаём php-файл, который нужно будет положить в директорию самого шаблона оформления блога (wp-content/themes/название_темы). Редактировать этот файл можно прямо из админке или где вам удобнее. В самом начале файла нужно задать название шаблона и сделать вызов header'а (это обязательно):
< ?php /*
Template Name: Название Шаблона
*/ ?>
< ?php get_header(); ?>
После чего приступаем к созданию самой сложной части — содержимого страницы и сайдбара. Используйте классы из вашего css-файла. Чтобы не ошибиться в корректном выводе контента, вы можете создать пробную страницу в админке и просмотреть код через броузер (view source code), выцепив оттуда нужные div'ы и классы. В эти классы и нужно будет вставить будущее содержимое новой страницы.
Например, контент, в котором может быть простой html (не забывайте про теги < p >!!!) и любой javascript/php-код, можно также использовать на всю катушку функционал Wordpress.
Далее, есть два пути создания сайдбара , можно просто его вызвать обычной функцией WP, а если хотите сделать специальную колонку, как в примере выше, то используйте ваши классы из css блога (смотрите для примера файл sidebar.php в вашей теме) и оформляйте, вставляйте что угодно и в самом конце вызвать footer:
<div class="secondary">
<div class="sb_search"><h2>< ?php _e('Поиск'); ?></h2>
< ?php include (TEMPLATEPATH . '/searchform.php'); ?>
</div>
<div class="sb_about"><h2>< ?php _e('Заголовок'); ?></h2>
<p>
Какой-то текст, картинки, скрипты. Что вам угодно, лишь бы вошло по ширине в сайдбар.
</p>
</div>
< ?php get_footer(); ?>
</div>
Теперь можете совместить поочередно все эти приведенные примеры в единое целое и использовать как шаблон специальной страницы на вашем блоге (в том случае, если у вас стоит шаблон К2, то возможно вам ничего не придётся менять в css этого примера, т.к. он построен на базе К2).
Можете также создать своё css оформление и воспользоваться им при создании страницы. Главное, не забывайте закрывать теги.