выпадающее меню wp_list_pages
TransMenu (dhtml)
типа того: http://www.escoladarainha.org.br/
CSS dropdown menu with WordPress (css)
WordPress Dropdown Menu Plugin (демо)
New wordpress plugin for creating a drop down navigation menu using JQuery (демо)
http://wordpress.org/extend/plugins/multi-level-navigation-plugin/ для всего
туториал по созданию выпадающего меню от Тараса cybercore.ru
еще один туториал по выпадающему меню
Zelig Dropdown Pages (wp_list_pages)
http://wordpress.org/extend/plugins/multi-level-navigation-plugin/ Multi-level Navigation Plugin (рубрики, Статические страницы, архивы)
W3C valid HTML and CSS
Темы с dropdown меню:
Fog 3.17
Munch 3.1
Molio
еще способ (вложенные ненумерованные списки + javascript): http://www.jongol.ru/css/suckertree-vertical-menu.html
слова для поиска: drop down menu, dropdown
in_category вылазит на главной
В общем у меня такая структура на главной:
home.php
вывод страницы
<?php $my_query = new WP_Query(‘pagename=about’);
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID; ?>
блаблабла
закончили луп: <?php endwhile; ?><?php rewind_posts(); ?>
вывод через query_posts постов помеченных меткой
<?php query_posts(‘tag=рекомендуем’); ?>
луп
<?php endwhile; else: echo ‘ ‘; endif; ?>
<?php rewind_posts(); ?>
сайдбар
тут у меня условие:
<?php if ( in_category(‘1’) ) {
echo ‘тру ля ля’;
}
elseif ( in_category(‘3’) ) {
echo ‘оп ля ля’;
}
и еще неск. категорий
?>
заметила, в зависимости от того, какой категории принадлежат посты, выводимые через query_posts(‘tag=рекомендуем’);, такое и условие in_category() срабатывает, причем выводится текст для самой старшей (меньший ID) категории, пост которой присутствует в блоке, выведенном query_posts(‘tag=рекомендуем’);
т.е. если в блоке query_posts(‘tag=рекомендуем’); есть посты из категории ID=1, то на главной лезет текст из условия in_category(‘1’), а если есть посты из категории ID=3, при этом нет постов из категорий ID=1 и ID=2, то соотв. лезет текст из условия in_category(‘3’)
Вопрос:
зачем, почему и главное что делать, чтобы на главной в сайдбар не лез текст из условия с in_category()?
Вывод category_description при query_posts
Имеем:
в категориях 5 и 6 сортируем посты по алфавиту, в остальных по дате.
КОД1
<div class="breadcrumbs">
<a href="<?php echo get_option('home'); ?>">На главную</a> /
<?php foreach((get_the_category()) as $cat) {
$cat=$cat->cat_ID;
echo(get_category_parents($cat, TRUE, ' / '));
} ?>
</div>
<p class="cat"><?php echo category_description($cat); ?></p>
Я всегда ставила КОД1 до <?php if (have_posts()) и все было ок, а тут с query_posts какой-то косяк получается 🙁
Проблема:
если вставлять КОД1 в МЕСТО №1 или МЕСТО №2
в «хлебных крошках» показывается не текущая категория, а другая, отношения к текущей не имеющая никакого. category_description вообще не выводится.
если вставлять КОД1 в МЕСТО №3
то перед каждым постом выводятся «хлебные крошки» (правильные) и выводится category_description.
Сами понимаете, перед каждым постом оно не нужно.
МЕСТО №1
<?php if ( in_category(5) || in_category(6) ) {
$categoryvariable=$cat;
$query= 'cat=' . $categoryvariable. '&orderby=title&order=ASC&posts_per_page=-1';
query_posts($query);
} ?>
МЕСТО №2
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
МЕСТО №3
<div class="post" id="post-<?php the_ID(); ?>">
и т.д.
проверка на существование custom fields + php
Проблема вот в чем:
хочу в sidebar.php при просмотре поста/страницы выводить галерею nextgen Gallery (т.е. ВНЕ лупа) так:
<?php echo nggShowGallery(‘1’); ?>
где соответственно 1 — id галереи
Если вставлять <?php echo nggShowGallery(‘1’); ?> в поле custom fields, то php «не работает», на страницу ничего не выводится 🙁
Тогда можно в custom field (key=gallery) вставлять только id галереи, логично?
Но тут тоже скорее всего засада: если ключ gallery не существует для конкр. поста/страницы, то плагин nextgen Gallery я думаю сильно озадачится по поводу отсутствия id галереи в <?php echo nggShowGallery(‘id’); ?> или нет?
Т.е. надо бы сначала проверить на существование произв. поля gallery для данного поста, а потом галерею выводить.
Вот с составлением этого условия у меня проблемы 🙁
не могу правильно скрестить
<?php echo nggShowGallery('gallery'); ?>
и
<?php if (is_single() || is_page() ) {
$key="gallery";
echo get_post_meta($post->ID, $key, true);
} ?>
Помогите составить такое условие:
имеем: custom field = gallery
если ключ gallery в посте/странице заполнено,
то <?php echo nggShowGallery(‘сюда выводим ключ gallery’); ?>
если ключа gallery нет
то ничего не выводим
А может чего попроще можно придумать?
Форма обратной связи cforms (продвинутый конструктор форм)
Cforms II— гибкий и функциональный конструктор форм для WordPress. С помощью этого плагина можно легко сделать ЛЮБУЮ форму: от простой формы обратной связи до сложной формы бронирования.
Описание возможностей плагина cforms на русском
Русификацию для плагина можно скачать по этой же ссылке или на сайте автора плагина.
Подробная документация с примерами есть в самом плагине, также на русском.
ВАЖНО: для корректной работы этого плагина таблицы плагина в базе данных должны быть в кодировке utf-8, включая callation.
Индивидуальный стиль для каждой ссылки wp_list_pages
Ковыряясь в коде сайта (wp 2.3.1) с удивлением заметила, что теперь каждой ссылке на страницу (Page), кот. формируется с помощью wp_list_pages присваивается свой класс:
<li class="page_item page-item-13"><a href="http://урл" title="заголовок 1">заголовок 1</a></li>
<li class="page_item page-item-19"><a href="http://урл" title="заголовок 2">заголовок 2</a></li>
<li class="page_item page-item-18"><a href="http://урл" title="заголовок 3">заголовок 3</a></li>
где 13, 19 и 18 id этих страниц.
то же самое с категориями:
<li class="cat-item cat-item-15"><a href="http://урл" title="Показать все записи в рубрике Рубрика1">Рубрика1</a>
Теперь можно раскрасить их во все цвета радуги 🙂
query_posts и сортировка записей по алфавиту
Не сортируются в категории записи по алфавиту 🙁
у меня нет шабона category.php, хочется обойтись как-то без него, чтобы файлов поменьше в Теме было.
Для вывода категории использую index.php — по условию: если категория, то инклюд лупа loop-cat.php
в файл loop-cat.php перед циклом вставляю:
<?php
$categoryvariable=$cat;
$query= 'cat=' . $categoryvariable. '&orderby=title&order=ASC&posts_per_page=-1';
query_posts($query);
?>
Почему не хотят сортироваться по алфавиту?
ВИЗУАЛЬНЫЙ РЕДАКТОР плагины
Источник: Sonika: визуальный редактор в WordPress: часть 2. Обзор плагинов
Плагины, расширяюшие возможности встроенного визуального редактора в wordpress (TinyMCE) или заменяющие его на виз. редактор FCKEditor.
Внимание: плагины в основном для wp 2.1 и выше.
Для wordpress 2.0.x информация по плагинам тут.
Тема, посвященная проблемам с визуальным редактором: пропали панели инструментов
WYSIWYG Button Manager
Позволяет для каждой группы пользователей (администраторы, авторы, участники) определить набор доступных кнопок на панели визуального редактора.
WP Super Edit
Представляет из себя что-то типа фреймворка для виз. редактора TinyMCE: из админки возможно «таскать» туда-сюда и раскладывать кнопки на панели, убирать ненужные в неактивный контейнер.
Advanced TinyMCE Editor
Этот плагин добавляет 60 новых кнопок в панель редактора, достаточно гибко настраивается. Возможность добавить свой css в расширенный редактор (например, для картинок).
Wysi-WordPress Plugin
добавляет новые кнопки в панель виз. редактора и гибкую загрузку картинок.
Dean’s FCKEditor for WordPress
Для тех кому не нравится редактор TinyMCE, встроенный в WordPress по умолчанию. Обзор этого плагина читайте у Миколки
Xinha4WP Beta
Можно использовать Xinha4WP как для постов, так и для комментариев.
Проверка на существование значения custom field
Задача у меня такая:
есть картинка в шапке. Назовем ее «картинка по умолчанию».
Если находимся в single или page
проверяем, существует ли (заполнено) custom field mykey
если mykey не пустой (в него забивается урл картинки), то выводим в шапку картинку с урлом из mykey
если пустой, то выводим картинку по умолчанию.
Помогите правильно проверить «заполнено ли поле mykey»
Ну собственно говоря вот что я имею на данный момент, если поле mykey заполнено, то требуемая картинка выводится, а вот если не заполнено, то фигня полная получается 🙁 «Картинка по умолчанию» не выводится в посте или Странице, на главной тоже не выводится 🙁
<?php if (is_single() || is_page() ) {
$key="mykey";
echo '<img src="';
echo get_post_meta($post->ID, $key, true);
echo '" width="530px" height="240px" />';
if ( strlen($text_desc) > 0 )
echo '<img src="' .bloginfo('template_url'). '/i/header.jpg" width="530px" height="240px" />';
}
else {
echo '<img src="' .bloginfo('template_url'). '/i/header.jpg" width="530px" height="240px" />';
} ?>
Шайтан?! Входящие ссылки в wp 2.2.1
Захожу в админку одного из сайтов (wp 2.2.1 от mywordpress.ru)
и вижу в колонке «посл. активность» кракозябликами 2 входящие ссылки с этого же сайта. Нажимаю «далее» и выхожу сюда:
http://blogs.yandex.ru/search.xml?link=%3C%20?php%20echo%20trailingslashit(get_option(‘siteurl’));%20?%20rel=
Область поиска: ссылка — < ?php echo trailingslashit(get_option(‘siteurl’)); ? rel=
Искомая комбинация слов нигде не встречается
Обновила Панель инструментов (она же Доска объявлений в локализации maxsite) и больше входяшие ссылки не показывались.
Что-то я не поняла, что это было?!
widgets в вордпрессе 2.0.x
Никак не могу пристроить виджеты в вордпресс 2.0.4
1) Скачала плагин sidebar widgets
2) в папку темы засунула functions.php
3) подготовила боковую колонку под виджет if ( !function_exists(‘dynamic_sidebar’) и все такое
При заходе на вкладку Управление—widgets получается фатал эррор:
Fatal error: Call to undefined function: wp_deregister_script() in /home/путь/public_html/wp-content/plugins/widgets/widgets.php on line 204
На 203—205 строчках плагина widgets:
if ( !file_exists( ABSPATH . WPINC . '/js/wp-scriptaculous.js' ) ) {
wp_deregister_script( 'scriptaculous-root' );
wp_register_script( 'scriptaculous-root', '/wp-includes/js/scriptaculous/scriptaculous.js', array('prototype'), '1.6.1' );
Нашла я wp-scriptaculous.js по ссылке с офиц. анг. форума, скачала, положила в /wp-includes/js/scriptaculous/wp-scriptaculous.js
Все равно не работает 🙁
Что делать?
Вывод custom fields и wp 2.2.2
Что-то я понять не могу, в wp 2.1+ код из рассылки Макса про произвольные поля: http://maxsite.org/ras20#comment-6520
для вывода custom field работал, а сейчас заметила, что для wp 2.2.2 произвольные поля не выводятся способом, описанным в рассылке.
Никто не в курсе, какие изменения были в wp 2.2.2 и как код нужно подправить, чтобы сделать вывод произвольных полей в любом месте шаблона?
В шаблоне таким способом выводятся произвольные поля (wp 2.2.2):
<?php
if (is_single() || is_page() )
{
$text_desc = trim($post_meta_cache[1][$post->ID]['top-title'][0]);
if ( strlen($text_desc) > 0 )
echo '<h1>' . $text_desc . '</h1>';
else echo '<h1>Привед!</h1>';
}
else echo '<h1>И Вам привед!</h1>';
?>
а вот в title и meta — не выводятся! (wp 2.2.2)
Для 2.1+ работал такой код:
<meta name="description" content="<?php
if (is_single() || is_page() )
{
$text_desc = trim($post_meta_cache[1][$post->ID]['description'][0]);
if ( strlen($text_desc) > 0 ) echo $text_desc;
else echo 'описание по-умолчанию';
}
else echo 'описание по-умолчанию';
?>">
А что же делать с wp 2.2.2?
Или я туплю где-то?
Раскрутка сайта, частые вопросы
Нашла неплохой FAQ для начинающих, рекомендую ознакомится:
FAQ по вопросам раскрутки сайта
Если вы знаете полезные ссылки для начинающих по теме топика, добавляйте.
Ошибка WordPress database error: [MySQL server has gone away]
Что означает эти ошибки?
Посты сохраняются, сайт работает нормально.
Раньше такого не наблюдала.
Но все-таки хотелось бы знать, из-за чего такое может быть?
Время от времени она выскакивает большой простыней, привожу часть:
WordPress database error: [MySQL server has gone away]
SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'seo-description'
WordPress database error: [MySQL server has gone away]
INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','seo-description','бла бла бла')
WordPress database error: [MySQL server has gone away]
SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'keywords'
WordPress database error: [MySQL server has gone away]
INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','keywords','бла бла бла')
WordPress database error: [MySQL server has gone away]
SELECT meta_id FROM wp_postmeta WHERE post_id = '139' AND meta_key = 'description'
WordPress database error: [MySQL server has gone away]
INSERT INTO wp_postmeta (post_id,meta_key,meta_value) VALUES ('139','description','бла бла бла')
WordPress database error: [MySQL server has gone away]
SELECT `comment_post_ID` as `post_id`, COUNT(comment_ID) as `comment_count`, comment_approved FROM `wp_comments` GROUP BY `comment_post_ID`
WordPress database error: [MySQL server has gone away]
SELECT `ID` ,`post_modified`, `post_date`, `post_status` FROM `wp_posts` WHERE post_status = 'publish' OR post_status='static' ORDER BY post_modified DESC
Subscribe2 подписка на уведомления о новых записях по email, рассылка
Сайт автора плагина Subscribe2: skippy.net
Блог автора плагина, полностью посвященный subscribe2: subscribe2.wordpress.com
Русификация плагина Subscribe2: Sonika
Плагин subscribe2 позволяет незарегистрированным пользователяям получать уведомления о новых постах в блоге на эл. ящик, зарегистрированные юзеры могут управлять своей подпиской: в каком виде будут приходить уведомления: plain text, HTML и «полный текст или анонс поста», выбирать рубрики, посты из которых их интересуют.
Пример использования: http://dom-2000.ru/subscribe/
Для администратора: возможность рассылать письма своим подписчикам из админки, можно послать письмо «всем», можно только зарегистрированным.
Прочитать подробнее о возможностях плагина и скачать русскую версию плагина 2.19 (для wp 2.0.x) и русификацию для v 3.6 (wp 2.1.x и выше) можно у меня на сайте:
Плагин для WordPress subscribe2 — подписка на новые посты, письма юзерам
Русификация плагина с помощью po и mo
Пытаюсь сделать перевод на русский для плагина subscribe2 через файлы .po и .mo, вроде бы все перевела и файл ru_RU.mo лежит в папке плагина, а русского языка не наблюдаю.
Стала копаться по блогам, встречается строчка
load_plugin_textdomain('myplugin');
Которую надо:
To localize a plugin, call load_plugin_textdomain() at the top of your plugin, passing it a string to identify the domain.
Подскажите, куда именно ее надо вставить и в каком виде. Как я не вставляла в начало файла subscribe2.php, ничего не получается.
**********************************
<?php
load_plugin_textdomain(‘subscribe2’);
/*
Plugin Name: Subscribe2
бла бла бла…
**********************************
А может я вообще не в том направлении думаю?
rss отдельных категорий через feedburner
пользуюсь плагином FeedBurner FeedSmith
Не могу сообразить, как настроить фид через feedburner.com так, чтобы при запросе фида любой категории была подписка через feedburner?
Если обращаться к блогу через http://site.ru/feed или http://site.ru/rss, то подписка на фид идет через feedburner, а если подписываться на фид категории, скажем, «Собаки» (dogs) http://site.ru/category/dogs/rss, то подписка «идет» напрямую…
wp2.2.1 — плагин Simple Tagging — WordPress database error
Пытаюсь пристроить плагин Simple Tagging к wp 2.2.1
На странице поиска по тагу получаю такие ошибки:
Что они означают-то?
На странице плагина http://wordpress.org/extend/plugins/simple-tagging-plugin/ указано, что плагин совместим с wp 2.2 🙁
WordPress database error: [Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ' IN ']
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts LEFT JOIN wp_stp_tags AS stptags ON (wp_posts.ID = stptags.post_id) WHERE 1=1 AND (post_type IN('page', 'post') AND (post_status IN('static', 'publish') OR post_status = 'private')) AND stptags.tag_name IN ('свежие яблоки') GROUP BY wp_posts.ID HAVING COUNT(ID) = 1 ORDER BY post_date DESC LIMIT 0, 3
WordPress database error: [Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ' IN ']
SELECT COUNT(DISTINCT ID) FROM wp_posts LEFT JOIN wp_stp_tags AS stptags ON (wp_posts.ID = stptags.post_id) WHERE 1=1 AND (post_type IN('page', 'post') AND (post_status IN('static', 'publish') OR post_status = 'private')) AND stptags.tag_name IN ('свежие яблоки')
WordPress database error: [Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ' IN ']
SELECT COUNT(DISTINCT ID) FROM wp_posts LEFT JOIN wp_stp_tags AS stptags ON (wp_posts.ID = stptags.post_id) WHERE 1=1 AND (post_type IN('page', 'post') AND (post_status IN('static', 'publish') OR post_status = 'private')) AND stptags.tag_name IN ('свежие яблоки')
the_excerpt Reloaded — настроиваемые анонсы (цитата опционально)
Сайт плагина: the_excerpt Reloaded
Перевод инструкции на русский: Sonika
О терминах: цитата = анонс = excerpt
Здесь под терминами «цитата» и «анонс» имеется в виду поле «цитата (опционально)»
Плагин the_excerpt Reloaded автоматически создает цитаты нужной длины и настраивается по вкусу легким движением руки. Гибкая настройка этого плагина позволяет в любой момент изменить количество выводимых букв в анонсе, а также «сохраняет» в анонсах теги, например <img>, <a>, вставлять ссылку «Читать далее» и т.п.
Просто активируйте плагин и замените <?php the_excerpt (); ?> на <?php the_excerpt_reloaded(); ?> в нужном шаблоне вашей Темы.
В функции <?php the_excerpt_reloaded(); ?> возможны несколько аргументов.
Примеры использования