Ответы в темах

Просмотр 15 ответов — с 31 по 45 (всего 70)
  • Заходишь в админку.
    Параметры -> Чтение -> «На страницах блога отображать не более:»
    Ну и ставишь сколько необходимо)

    Sergey Biryukov, спасибо) работает хорошо 🙂

    Sergey Biryukov, Ваше решение работает только в FF.
    Я не знаю почему, но в Opera, Chrome, IE — не работает.

    Мне кажется, Вы знаете. По крайней мере, надеюсь, что знаете. 🙂

    Atrax, Извиняюсь за нарушение правил.

    Sergey Biryukov, я уже решил более менее поставленную задачу с помощью: <meta http-equiv="refresh" content="0; url=<?php echo get_bloginfo('url'); ?>">
    А некорректность задачи из за того, что я просто не смог нормально всё объяснить(

    Ну то, что функция header() в данном случае не подойдёт.

    У меня на страницы есть условие, которое выполняется если ничего не найдено. Пишется: Ничего не найдено.
    (И это не страница 404. Это вообще home.php)

    Я хочу сделать так, чтоб когда у меня «ничего не найдено», то была переадресация на 404

    А теперь более ясно скажу.
    Вот home.php:

    <?php
    /**
     * @package WordPress
     * @subpackage Motion
     */
    get_header(); ?>
    
    <div id="main">
    <div id="content">
    
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    
    <?php if (function_exists('wp_list_comments')): ?>
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <?php else : ?>
    <div class="post" id="post-<?php the_ID(); ?>">
    <?php endif; ?>
    
    <div class="posttop">
    <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <div class="postmetatop">
    <div class="categs">Категория: <?php the_category(', ') ?></div>
    <div class="cleared"></div>
    </div><!-- /postmetatop -->
    </div><!-- /posttop -->
    
    <div class="postmetabottom">
    <div class="date"><div class="zadate"><?php the_time('d/m/Y') ?></div></div>
    <div class="readmore"><span><a href="<?php the_permalink() ?>">информация о товаре</a></span></div>
    <div class="cleared"></div>
    </div><!-- /postmetabottom -->
    </div><!-- /post -->
    
    <?php endwhile; ?>
    <?php else : ?>
    <div class="post">
    <div class="posttop">
    <h2 class="posttitle"><a href="#">Не найдено</a></h2>
    </div><!-- /posttop -->
    <div class="postcontent">
    <p>К сожалению, по Вашему запросу ничего не найдено.</p>
    </div><!-- /postcontent -->
    </div><!-- /post -->
    <?php endif; ?>
    
    <div id="navigation">
    <?php if(function_exists('wp_pagenavi')) { ?>
    <?php wp_pagenavi(); ?>
    <?php }
    else { ?>
    <div class="alignleft"><?php next_posts_link('« Предыдущие записи') ?></div>
    <div class="alignright"><?php previous_posts_link('Следующие записи »') ?></div>
    <?php } ?><!-- end of pagenavi conditional statement -->
    <div class="cleared"></div>
    </div><!-- /navigation -->
    
    </div><!-- /content -->
    
    <?php get_sidebar(); ?>
    
    </div><!-- /main -->
    <?php get_footer(); ?>

    Видишь строчку <p>К сожалению, по Вашему запросу ничего не найдено.</p>? Она выводится если выполняется определённое условие. Мне нужно, чтоб вместо этой строчки была переадресация.

    Я смог очень банально убрать 🙂 :

    ...
    <?php else : $bez=1; ?>
    ...
    <?php if(function_exists('wp_pagenavi') AND $bez != 1) { wp_pagenavi(); } ?>
    ...

    Но теперь, мне вообще захотелось убрать эту страницу.
    Как мне сделать редирект на 404.php?
    (Я кстати, решил на 404-ой сделать переадресацию на Главную. Хрен знает почему, но меня ппц раздражает 404-ая страница)

    Задам вопрос более конкретно:
    Что надо вписать вместо $bez=1;, чтоб пользователь перекидывался на 404.php ???
    *JS — не хочу использовать.
    *функция header() естественно работать не будет.

    Прям таки не знаю чё делать…

    У меня есть 404, и если ввести адрес несуществующей страницы, то человек будет на неё перенаправлен.

    Только в случае с pagenavi вс страницы типа:
    http://localhost/localblog/page/x/
    где x — любое число,
    как бы, существуют — home.php:

    <?php
    /**
     * @package WordPress
     * @subpackage Motion
     */
    get_header(); ?>
    
    <div id="main">
    <div id="content">
    
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    
    <?php if (function_exists('wp_list_comments')): ?>
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <?php else : ?>
    <div class="post" id="post-<?php the_ID(); ?>">
    <?php endif; ?>
    
    <div class="posttop">
    <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    <div class="postmetatop">
    <div class="categs">Категория: <?php the_category(', ') ?></div>
    <div class="cleared"></div>
    </div><!-- /postmetatop -->
    </div><!-- /posttop -->
    
    <div class="postmetabottom">
    <div class="date"><div class="zadate"><?php the_time('d/m/Y') ?></div></div>
    <div class="readmore"><span><a href="<?php the_permalink() ?>">информация о товаре</a></span></div>
    <div class="cleared"></div>
    </div><!-- /postmetabottom -->
    </div><!-- /post -->
    
    <?php endwhile; ?>
    <?php else : ?>
    <div class="post">
    <div class="posttop">
    <h2 class="posttitle"><a href="#">Не найдено</a></h2>
    </div><!-- /posttop -->
    <div class="postcontent">
    <p>К сожалению, по Вашему запросу ничего не найдено.</p>
    </div><!-- /postcontent -->
    </div><!-- /post -->
    <?php endif; ?>
    
    <div id="navigation">
    <?php if(function_exists('wp_pagenavi')) { ?>
    <?php wp_pagenavi(); ?>
    <?php }
    else { ?>
    <div class="alignleft"><?php next_posts_link('« Предыдущие записи') ?></div>
    <div class="alignright"><?php previous_posts_link('Следующие записи »') ?></div>
    <?php } ?><!-- end of pagenavi conditional statement -->
    <div class="cleared"></div>
    </div><!-- /navigation -->
    
    </div><!-- /content -->
    
    <?php get_sidebar(); ?>
    
    </div><!-- /main -->
    <?php get_footer(); ?>

    Вот из этого кода и выдаётся: (К сожалению, по Вашему запросу ничего не найдено.)+(Постраничная навигация)

    Проблема решена с помощью плагина Remove Title Attributes

    На всём блоге — т.е. не только в меню? А где ещё?

    На всё блоге:
    1. Меню в хедаре:
    <?php wp_list_pages('depth=1&title_li=0&sort_column=menu_order'); ?>

    2. Названия рубрик статей:
    Типо так:
    Название статьи
    Рубрика: Такае-то

    Надо убрать — «Просмотреть все записи в рубрике «Такае-то»»

    3. Список рубрик в сайтбаре.
    Тоже надо убрать — «Просмотреть все записи в рубрике «Такае-то»»

    Ну вообще, это всё что нужно убрать)

    Sergey Biryukov, ОГРОМНОЕ СПАСИБО!) Работает как надо)

    Я бы написал автору если б английский знал)
    Надо кому-то типо Лекактуса или Соники написать.
    Хотя, конечно, до них тяжело достучаться.

    Может стоит подойти к к проблеме более правильно.
    Искать каждое имя категории и описание: ДА.
    Вот этот код(не считая поиска по описанию категории) ищет по полю wp_terms.slug, а надо чтоб искал по полю wp_terms.name

    // create the search categories query
    	function se_build_search_categories()
    	{
    		global $wp_query, $wpdb;
    		$s = $wp_query->query_vars['s'];
    		$search_terms = $this->se_get_search_terms();
    		$exact = $wp_query->query_vars['exact'];
    		$search = '';
    
    		if ( !empty($search_terms) )
    		{
    			// Building search query for categories slug.
    			$n = ($exact) ? '' : '%';
    			$searchand = '';
    			$searchSlug = '';
    			foreach($search_terms as $term)
    			{
    				$term = addslashes_gpc($term);
    				$searchSlug .= "{$searchand}(tter.slug LIKE '{$n}".sanitize_title_with_dashes($term)."{$n}')";
    				$searchand = ' AND ';
    			}
    			if (!$sentence && count($search_terms) > 1 && $search_terms[0] != $s )
    			{
    				$searchSlug = "($searchSlug) OR (tter.slug LIKE '{$n}".sanitize_title_with_dashes($s)."{$n}')";
    			}
    			if ( !empty($searchSlug) )
    			$search = " OR ({$searchSlug}) ";
    
    			// Building search query for categories description.
    			$searchand = '';
    			$searchDesc = '';
    			foreach($search_terms as $term)
    			{
    				$term = addslashes_gpc($term);
    				$searchDesc .= "{$searchand}(ttax.description LIKE '{$n}{$term}{$n}')";
    				$searchand = ' AND ';
    			}
    			$sentence_term = $wpdb->escape($s);
    			if (!$sentence && count($search_terms) > 1 && $search_terms[0] != $sentence_term )
    			{
    				$searchDesc = "($searchDesc) OR (ttax.description LIKE '{$n}{$sentence_term}{$n}')";
    			}
    			if ( !empty($searchDesc) )
    			$search = $search." OR ({$searchDesc}) ";
    		}
    		$this->se_log("categories where: ".$search);
    		return $search;
    	}

    Хотя опять же, я не понимаю вот чего.
    Я изменил поле wp_terms.slug одной из категорий. Изменил, в смысле поменял на русское название. Начал искать по этому русскому названию, но поиск ничего не находит. Хотя он ведь по этому полю ищет o_O

    а вообще какая у вас кодирвка БД?

    utf8_general_ci

    Если в настройках плагина выбрать «Искать каждый тег», то поиск производится и по имени категории (т.е. по полю wp_terms.name).

    // create the search tag query
    	function se_build_search_tag()
    	{
    		global $wp_query, $wpdb;
    		$s = $wp_query->query_vars['s'];
    		$search_terms = $this->se_get_search_terms();
    		$exact = $wp_query->query_vars['exact'];
    		$search = '';
    
    		if ( !empty($search_terms) )
    		{
    			// Building search query
    			$n = ($exact) ? '' : '%';
    			$searchand = '';
    			foreach($search_terms as $term)
    			{
    				$term = addslashes_gpc($term);
    				if ($this->wp_ver23)
    				{
    					$search .= "{$searchand}(tter.name LIKE '{$n}{$term}{$n}')";
    				}
    				$searchand = ' AND ';
    			}
    			$sentence_term = $wpdb->escape($s);
    			if (!$sentence && count($search_terms) > 1 && $search_terms[0] != $sentence_term )
    			{
    				if ($this->wp_ver23)
    				{
    					$search = "($search) OR (tter.name LIKE '{$n}{$sentence_term}{$n}')";
    				}
    			}
    			if ( !empty($search) )
    			$search = " OR ({$search}) ";
    		}
    		$this->se_log("tag where: ".$search);
    		return $search;

    Эта та самая часть кода, которая связана с «Искать каждый тэг».
    Я посмотрел поле wp_terms.name, взял оттуда название категории из 2-х слов; ввёл это в поиск; результат — ничего не найдено.

    Почему этот код не ищет название категорий состоящих более чем из одного слова?(

    Есть какие-нибудь предложения по изменению кода?

    Категории имена которых состоят из 2-х и более слова — не ищет((
    Я
    ввёл в поиск слова «Хорошие авто» и в результате — НИЧЕГО НЕ НАЙДЕНО. Хотя у меня есть такая категория. А если вводить слова по отдельности «Хорошие» и «авто», то поиск сработает как надо.

Просмотр 15 ответов — с 31 по 45 (всего 70)