01. Проблемы и решения с WordPress

Что-то не работает? Сайт не загружается? Сломалось. Пиши сюда.

Скртие элементовов при добавление записи автором.

У меня есть блог, в котором при регистрации человек получает статус участник и может добавлять новые посты. Как при добавление нового поста для участников скрыть такие формы, как "пароль на запись", "загрузка", "дата записи" и т.п.
Например только админ видит форму "автор записи". А как скрыть некоторые формы для участников?
Заранее спасибо.

свойство post_excerpt

Здравствуйте!
не пойму: the_excerpt() работает, а при вызове метода post_excerpt НИЧЕГО не выводится, вот код:

<?php
$posts_new = get_posts('category=11&numberposts=3');

foreach ($posts_new as $post_new) :
echo '<h2><a href="'; 
echo get_permalink($post_new->ID);
echo '">';
echo $post_new->post_title;
echo '</a></h2>';

//Закомментил, тк excerpt'у это не нужно...
//if ( preg_match('/<!--more(.*?)?-->/', $post_new->post_content, $matches) )
//list($post_new->post_content,$junk) = explode($matches[0], $post_new->post_content, 2);

echo $post_new->post_excerpt;
endforeach;
?>

или в get_posts нет post_excerpt ??…

Пропадают рубрики.

Создаю новую рубрику, пишу описание, название и т.д. Добавляю. Она отображается в списке рубрик, но только до первого обновления страницы. Потом ее просто нет и на самом сайте тоже не видно. А при написании поста их все видно, но оттуда уже пропали все подрубрики. что за мистика может быть?
WP 2.3.3 грешил на этот плагин: http://dimox.name/wordpress-plugin-article-directory/ но если удалить, то ситуация не меняется.
Других плагинов не установленно.

Размер сайдбара

Как можно расширить ширину сайдбара?

Как избавиться от htaccess

Добрый день.
Столкнулся с такой проблемой. Установил каталог ссылок на сайт, для авторизации в каталог используется файл htaccess (далее htaccess-cat) тот что в админке каталога. Но он не работает, так как ему мешает файл htaccess который в корне сайта WP (далее htaccess-wp).

Просто удалить htaccess-wp нельзя, так как ЧПУ не работает без него. Возможно, есть какие то способы, что бы не было корне этого htaccess-wp и при этом ЧПУ, и сайт в целом, продолжал работать?

Проблема с рубрикой

На сайте не появляются рубрики, хотя в админке показывает все рубрики. Попробовал поменять тему (на стандартную), результат то же самое "Рубрик нет".
Версия wordpressa 2.3.3. от maxsite.

Вот sidebar.php:

<div id="sidebar" class="clearfix">

<div id="xsnazzy"><!–Search Box Start –>
<b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b>
<div class="xboxcontent">

<div class="tabber">
<div class="tabbertab">
<h2>Поиск</h2>
<?php include(TEMPLATEPATH."/searchform.php");?>
</div>

<div class="tabbertab">
<h2>Архивы</h2>
<ul class="tablist">
<?php wp_get_archives(‘type=monthly’); ?>
</ul>
</div>

<div class="tabbertab">
<h2>Категории</h2>
<ul class="tablist">
<?php wp_list_categories(‘orderby=name&title_li’); ?>
</ul>
</div>

</div><!–Tabber end –>
</div>
<b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b>
</div><!–Search box end –>

<div class="advertise">
<?php include(TEMPLATEPATH."/sidebar_featured.php"); ?>
</div>

<div id="sidebarwrap" class="clearfix">

<!–Popular Start –>
<div id="pxsnazzy">
<b class="pxtop"><b class="pxb1"></b><b class="pxb2"></b><b class="pxb3"></b><b class="pxb4"></b></b>
<div class="pxboxcontent">

<div id="popular">
<ul>
<li>
<h2>Последние записи</h2>
<ul >
<?php $recent = new WP_Query("showposts=5"); while($recent->have_posts()) : $recent->the_post();?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
</li>
</ul>
<div id="popular-bottom"></div>
</div>

</div>
<b class="pxbottom"><b class="pxb4"></b><b class="pxb3"></b><b class="pxb2"></b><b class="pxb1"></b></b>
</div><!–Search box end –>

<?php include(TEMPLATEPATH."/l_sidebar.php");?>
<?php include(TEMPLATEPATH."/r_sidebar.php");?>

</div>

</div>

<!–sidebar.php end–>

Вот l_sidebar.php:

<div id="l_sidebar" class="clearfix">

<ul>
<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(1) ) : else : ?>

<li>
<h2>Новые записи</h2>
<ul>
<?php get_archives(‘postbypost’, 10); ?>
</ul>
</li>

<li>
<h2>Категории</h2>
<ul>
<?php wp_list_categories(‘orderby=name&title_li’); ?>
</ul>
</li>

<?php endif; ?>
</ul>
</div>

r_sidebar:

<div id="r_sidebar" class="clearfix">
<ul>
<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(2) ) : else : ?>

<li>
<h2>Архивы</h2>
<ul>
<?php wp_get_archives(‘type=monthly’); ?>
</ul>
</li>

<li>
<h2>Ссылки</h2>
<ul>
<?php get_links(-1, ‘<li>’, ‘</li>’, ‘ – ‘); ?>
</ul>
</li>
<?php endif; ?>
</ul>
</div>

Еще один вопрос: как можно настроить порядок постоянных страниц наверху страницы? я хотел бы вот такой порядок:

домой, о проекте, авторы, партнеры, реклама, справочная информация, контакты

Спасибо заранее.

чем отличаются archives.php и archive.php ??

Здравствуйте!
Никак не пойму за что отвечают эти два файла… можете вкратце объяснить?

Спасибо!

Как сделать чтобы WordPress не переделывал ссылку

У меня в админке насчет ЧПУ выставлено следующий вид представления ссылок:
http://site.ru/2008/03/13/sample-post/

Но в конце каждой новости стоит ссылка "Постоянный адрес этой статьи" вида:
http://site.ru/?p=235

Так вот, при клике на http://site.ru/?p=235 открывается страница с адресом http://site.ru/2008/03/13/sample-post/

Как сделать так, чтобы WordPress не переделывал адрес в http://site.ru/2008/03/13/sample-post/ и при клике на http://site.ru/?p=235 открывалась страница с адресом http://site.ru/?p=235?

Например как это сделано на http://maxsite.org/. Статья с адресом
http://maxsite.org/raschet-tsenyi-reklamyi-na-bloge
Доступна также по адресу
http://maxsite.org/?p=363

Как запаролить блог на сайте, сделанном на WordPres в качестве CMS

Я сделала на основе WordPress сайт http://tanzaniath.ru/
Там на верху ссылка [вход для официальных партнеров], которая ведет на страницу с постами.
Хочется как-то красиво ее запаролить. Если бы блог был в отдельной папке я бы сделала просто через htaccess.
Но в данном случае так нельзя, так как статичные страницы должны быть видны всем.
А родной вход WordPress мне не нравиться, т.к. после залогинивания человек попадает на страницу своего профиля, а мне надо чтобы он попадал сразу на страницу с постами.

Помогите, пожалуйста, решить эту проблему. А то уже второй день бьюсь.

Проблема с установкой и кодировкой!

В чем может быть проблема ? с хостингом?
установили вордпресс -лезет вначале и сам блог отражается в кодировке уникод -тоже в нечитаемом виде!
Что делаем не так? что попросить сделать хостера (если беда в хостинге)? или что мы делаем не так?

ERE ID = ‘$post_ID’"); $post = get_post($post_ID); if ( !empty($page_template) ) $post->page_template = $page_template; wp_transition_post_status($post_status, $previous_status, $post); if ( $update) do_action(‘edit_post’, $post_ID, $post); do_action(‘save_post’, $post_ID, $post); do_action(‘wp_insert_post’, $post_ID, $post); return $post_ID; } function wp_update_post($postarr = array()) { global $wpdb; if ( is_object($postarr) ) $postarr = get_object_vars($postarr); // First, get all of the original fields $post = wp_get_single_post($postarr[‘ID’- , ARRAY_A); // Escape data pulled from DB. $post = add_magic_quotes($post); // Passed post category list overwrites existing category list if not empty. if ( isset($postarr[‘post_category’]) && is_array($postarr[‘post_category’]) && 0 != count($postarr[‘post_category’]) ) $post_cats = $postarr[‘post_category’]; else $post_cats = $post[‘post_category’]; // Drafts shouldn’t be assigned a date unless explicitly done so by the user if ( in_array($post[‘post_status’], array(‘draft’, ‘pending’)) && empty($postarr[‘edit_date’]) && empty($postarr[‘post_date’]) && (‘0000-00-00 00:00:00’ == $post[‘post_date’]) ) $clear_date = true; else $clear_date = false; // Merge old and new fields with new fields overwriting old ones. $postarr = array_merge($post, $postarr); $postarr[‘post_category’] = $post_cats; if ( $clear_date ) { $postarr[‘post_date’] = ”; $postarr[‘post_date_gmt’] = ”; } if ($postarr[‘post_type’] == ‘attachment’) return wp_insert_attachment($postarr); return wp_insert_post($postarr); } function wp_publish_post($post_id) { global $wpdb; $post = get_post($post_id); if ( empty($post) ) return; if ( ‘publish’ == $post->post_status ) return; $wpdb->query( "UPDATE $wpdb->posts SET post_status = ‘publish’ WHERE ID = ‘$post_id’" ); $old_status = $post->post_status; $post->post_status = ‘publish’; wp_transition_post_status(‘publish’, $old_status, $post); do_action(‘edit_post’, $post_id, $post); do_action(‘save_post’, $post_id, $post); do_action(‘wp_insert_post’, $post_id, $post); } function wp_add_post_tags($post_id = 0, $tags = ”) { return wp_set_post_tags($post_id, $tags, true); } function wp_set_post_tags( $post_id = 0, $tags = ”, $append = false ) { /* $append – true = don’t delete existing tags, just add on, false = replace the tags with the new tags */ global $wpdb; $post_id = (int) $post_id; if ( !$post_id ) return false; if ( empty($tags) ) $tags = array(); $tags = (is_array($tags)) ? $tags : explode( ‘,’, $tags ); wp_set_object_terms($post_id, $tags, ‘post_tag’, $append); } function wp_set_post_categories($post_ID = 0, $post_categories = array()) { global $wpdb; $post_ID = (int) $post_ID; // If $post_categories isn’t already an array, make it one: if (!is_array($post_categories) || 0 == count($post_categories) || empty($post_categories)) $post_categories = array(get_option(‘default_category’)); else if ( 1 == count($post_categories) && ” == $post_categories[0] ) return true; $post_categories = array_map(‘intval’, $post_categories); $post_categories = array_unique($post_categories); return wp_set_object_terms($post_ID, $post_categories, ‘category’); } // wp_set_post_categories() function wp_transition_post_status($new_status, $old_status, $post) { if ( $new_status != $old_status ) { do_action(‘transition_post_status’, $new_status, $old_status, $post); do_action("${old_status}_to_$new_status", $post); } do_action("${new_status}_$post->post_type", $post->ID, $post); } // // Trackback and ping functions // function add_ping($post_id, $uri) { // Add a URL to those already pung global $wpdb; $pung = $wpdb->get_var("SELECT pinged FROM $wpdb->posts WHERE ID = $post_id"); $pung = trim($pung); $pung = preg_split(‘/\s/’, $pung); $pung
= $uri; $new = implode("\n", $pung); $new = apply_filters(‘add_ping’, $new); return $wpdb->query("UPDATE $wpdb->posts SET pinged = ‘$new’ WHERE ID = $post_id"); } function get_enclosed($post_id) { // Get enclosures already enclosed for a post global $wpdb; $custom_fields = get_post_custom( $post_id ); $pung = array(); if ( !is_array( $custom_fields ) ) return $pung; foreach ( $custom_fields as $key => $val ) { if ( ‘enclosure’ != $key || !is_array( $val ) ) continue; foreach( $val as $enc ) { $enclosure = split( "\n", $enc ); $pung[] = trim( $enclosure[ 0 ] ); } } $pung = apply_filters(‘get_enclosed’, $pung); return $pung; } function get_pung($post_id) { // Get URLs already pung for a post global $wpdb; $pung = $wpdb->get_var("SELECT pinged FROM $wpdb->posts WHERE ID = $post_id"); $pung = trim($pung); $pung = preg_split(‘/\s/’, $pung); $pung = apply_filters(‘get_pung’, $pung); return $pung; } function get_to_ping($post_id) { // Get any URLs in the todo list global $wpdb; $to_ping = $wpdb->get_var("SELECT to_ping FROM $wpdb->posts WHERE ID = $post_id"); $to_ping = trim($to_ping); $to_ping = preg_split(‘/\s/’, $to_ping, -1, PREG_SPLIT_NO_EMPTY); $to_ping = apply_filters(‘get_to_ping’, $to_ping); return $to_ping; } // do trackbacks for a list of urls // accepts a comma-separated list of trackback urls and a post id function trackback_url_list($tb_list, $post_id) { if (!empty($tb_list)) { // get post data $postdata = wp_get_single_post($post_id, ARRAY_A); // import postdata as variables extract($postdata, EXTR_SKIP); // form an excerpt $excerpt = strip_tags($post_excerpt?$post_excerpt:$post_content); if (strlen($excerpt) > 255) { $excerpt = substr($excerpt,0,252) . ‘…’; } $trackback_urls = explode(‘,’, $tb_list); foreach($trackback_urls as $tb_url) { $tb_url = trim($tb_url); trackback($tb_url, stripslashes($post_title), $excerpt, $post_id); } } } // // Page functions // function get_all_page_ids() { global $wpdb; if ( ! $page_ids = wp_cache_get(‘all_page_ids’, ‘pages’) ) { $page_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type = ‘page’"); wp_cache_add(‘all_page_ids’, $page_ids, ‘pages’); } return $page_ids; } // Retrieves page data given a page ID or page object. // Handles page caching. function &get_page(&$page, $output = OBJECT, $filter = ‘raw’) { global $wpdb, $blog_id; if ( empty($page) ) { if ( isset( $GLOBALS[‘page’] ) && isset( $GLOBALS[‘page’]->ID ) ) { $_page = & $GLOBALS[‘page’]; wp_cache_add($_page->ID, $_page, ‘pages’); } else { // shouldn’t we just return NULL at this point? ~ Mark $_page = null; } } elseif ( is_object($page) ) { if ( ‘post’ == $page->post_type ) return get_post($page, $output, $filter); wp_cache_add($page->ID, $page, ‘pages’); $_page = $page; } else { $page = (int) $page; // first, check the cache if ( ! ( $_page = wp_cache_get($page, ‘pages’) ) ) { // not in the page cache? if ( isset($GLOBALS[‘page’]->ID) && ($page == $GLOBALS[‘page’]->ID) ) { // for is_page() views // I don’t think this code ever gets executed ~ Mark $_page = & $GLOBALS[‘page’]; wp_cache_add($_page->ID, $_page, ‘pages’); } elseif ( isset($GLOBALS[‘post_cache’][$blog_id][$page]) ) { // it’s actually a page, and is cached return get_post($page, $output, $filter); } else { // it’s not in any caches, so off to the DB we go // Why are we using assignment for this query? $_page = & $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID= ‘$page’ LIMIT 1"); if ( ‘post’ == $_page->post_type ) return get_post($_page, $output, $filter); // Potential issue: we’re not checking to see if the post_type = ‘page’ // So all non-‘post’ posts will get cached as pages. wp_cache_add($_page->ID, $_page, ‘pages’); } } } $_page = sanitize_post($_page, $filter); // at this point, one way or another, $_post contains the page object if ( $output == OBJECT ) { return $_page; } elseif ( $output == ARRAY_A ) { return get_object_vars($_page); } elseif ( $output == ARRAY_N ) { return array_values(get_object_vars($_page)); } else { return $_page; } } function get_page_by_path($page_path, $output = OBJECT) { global $wpdb; $page_path = rawurlencode(urldecode($page_path)); $page_path = str_replace(‘%2F’, ‘/’, $page_path); $page_path = str_replace(‘%20’, ‘ ‘, $page_path); $page_paths = ‘/’ . trim($page_path, ‘/’); $leaf_path = sanitize_title(basename($page_paths)); $page_paths = explode(‘/’, $page_paths); foreach($page_paths as $pathdir) $full_path .= ($pathdir!=”?’/’:”) . sanitize_title($pathdir); $pages = $wpdb->get_results("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name = ‘$leaf_path’ AND post_type=’page’"); if ( empty($pages) ) return NULL; foreach ($pages as $page) { $path = ‘/’ . $leaf_path; $curpage = $page; while ($curpage->post_parent != 0) { $curpage = $wpdb->get_row("SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE ID = ‘$curpage->post_parent’ and post_type=’page’"); $path = ‘/’ . $curpage->post_name . $path; } if ( $path == $full_path ) return get_page($page->ID, $output); } return NULL; } function get_page_by_title($page_title, $output = OBJECT) { global $wpdb; $page_title = $wpdb->escape($page_title); $page = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = ‘$page_title’ AND post_type=’page’"); if ( $page ) return get_page($page, $output)

Програмно добавить категорию

Привет!

Как из плагина програмно добавить категорию? порылся в исходниках wordpress нашёл только функции получения уже существующих категорий.
Никто не в курсе?

Отображение родительской категории в блоге.

У меня каждая запись в блоге может быть только в одной категории. И возле записи пишется: в категории такой то.
Можно ли реализовать такое, чтоб перед названием категории выводилась ее родительская категория?
Уровень вложенности 1.

Сортировка сообщений в блоге.

Возможно ли как-то реализовать сортировку сообщений в своем блоге?
В настоящий момент мне надо по количеству комментариев и еще я использую плагин WP-PostRatings 1.20 b хотелось бы иметь возможность сортировать по рейтингу.
Как это можно реализовать, пожалуйста, подскажите. Заранее спасибо.

сломалась кодировка

Срочный вопрос (препираюсь с хостером):
плагин anti xss attack(от 08.02.2008) потенциально может «сломать» кодировку? самостоятельно или в сочетании с другим каким-либо плагином?
база данных utf8, callation у базы и у всех таблиц (и полей) utf_general_ci
смотрю в базу — вижу нормальные тексты (без каракулей)
чарсет в шаблоне прописан соотв. тоже utf-8
в wp-config.php
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ‘utf8_general_ci’);

В общем-то ничего не менялось, поломка кодировки совпала по времени примерно с активацией энтого плагина, но разве он каким-то боком может что-то сломать??
После активации плагина изменила текст одного из постов — в результате весь сайт пошел каракулями.

WordPress, Блог-клиент и PING

Такой вопрос: Если я публикую статью через xmlrpc.php происходит ли автоматический пинг указанных в настройках сервисов?
Или пинг происходит только при публикации через админку

Возможно ли сделать каталог категорий и добавление записей …

Весь вопрос в заголовок не влез.
А звучал он так: Возможно ли сделать каталог категорий и добавление записей пользователями? Можно ли сделать шаблон для добавления записи?
Разделю пояснение вопроса на две части:
1. Допустим у меня категории вложенны так:
Цвет -> Теплый (3 записи)
Цвет -> Холодный (2 записи)

и так далее. Т.е. уровень вложенности 1.
Одна категория вложенна в другую.

Внимание, вопрос:
Возможно ли реализовать подобный вывод всех категорий:

Главная категория выводится большим шрифтом и возле нее в скобках показывается количество записей. Дочерние категории выводятся более мелким шрифтом и в них также показывается количесто записей.

Я поизучал кодекс вордпресса, но ответа на свой вопрос там не нашел.

2. Второй вопрос.
Возможно ли сделать так, чтоб зарегистрированные пользователи могли сами добавлять сообщения в необходимые категории?

3. Последний вопрос, пожалуй, самый проблемный.
Мне необходимо, чтоб запись выглядила неким шаблоном. Например:
Город: Москва
Метро: Павелецкая
Улица: Чайковского

и так далее. Заставить пользователей писать все красиво и акуратно невозможно. Так можно ли как-то заставить заполнять всю эту форму программным методом? Как ее прикрутить к созданию сообщений?

Не могу деактивировать (отключить) плагин

Неожиданно перестали отключаться (деактивироваться) плагины.

  • Нажимаю "Деактивировать"
  • Переход на страницу /deactivate=true
  • Но плагин до сих пор активирован (включён, "зелёненький").
  • Итак со всеми.

В чём может быть проблема?
Спасите!

Заранее благодарен!

  • Примечания:

Поиск по форму результатов не дал.
Не мог решиться куда посылать тему сюда или в "Проблемы с плагинами", вроде плагины работают нормально, просто не отключаются (не деактивируются).

Автоудаление старых новостей

У меня в день появляется 7-10 новостей.
Специфика новостей такова, что через несколько часов они теряют свою актуальность.
То, что контент оперативный – это хорошо.
Но с другой стороны, 250 ненужных новостей в месяц – это бардак.

Возникает вопрос – а можно ли сделать так, чтоб Вордпресс сам удалял в определенной категории все, что старше месяца (недели, года etc)?

ПС. Ну или подкиньте телефончик массажиста, который недорого возьмет за массаж указательного пальца правой руки 🙂

the_tags

что-то никак не могу найти способа вывести "нет меток" в стандартной функции the_tags если метки отсутствуют.

Отключение фильтров форматирования кода

Тут http://habrahabr.ru/blog/wordpress/37404.html зашел разговор на тему того как заставить вп расслабится и не трогать код. который мы добавлем при постинге, например, отображать вставляемые айфреймы и ничего не перезаписывать и не переделывать код…
А реально, кто может уверенно сказать как и где отключать эти фильтры?

Anonymous
Отправить
Ответ на: