goldyman

Рейтинг
52
Регистрация
23.07.2009

Есть хук, который позволяет выводить данные (дата, автор и т. д.) только в постах определенных категорий, вот код:

<?php

$category = get_the_category();
$category_slug = (isset($category[0]->slug) && !empty($category[0]->slug) ? $category[0]->slug : NULL);
if ($category_slug == 'one' || $category_slug == 'two') {
meta_date();
}
?>

Господа, будьте любезны, поделитесь решением - как переделать данную функцию таким образом, чтобы она выводилась абсолютно на всех страницах, но отображалась только на страницах категорий со слагом one и two.

Т. е. для всех остальных страниц нужно организовать вывод функции в тэг, например, <span> с классом "display:none". Заранее благодарен.

Я даже немного не так выразился, сорри. Могут ли категории и страницы продвигаться под ключевые фразы, которые включат в себя ключ (ключи) с главной? Например, ключ главной: Ноутбук, ключ страницы (поста, категории): Ноутбук Asus. Или же в НЧ можно захватывать еще и ключ Лэптоп Asus, по которому вылезти в топ будет проще, чем с ключем Ноутбук.

Заказывал копирайт по тематике маркетинг на etxt.ru. Материал написали в срок, все ок. Для проверки перевел статью на русский гугл-транслейтом и проверил на уник - 15%. Галимый перевод, причем договаривались именно на копирайт.

Epiq:
не перенаправляет( пишет страница не найдена

Вот весь файл .htaccess может что-то конфликтует с чем-то...

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1.html [R=301,L]
RewriteRule ^(.*)post$ http://test.ru/post.html [R=301,L]
RewriteRule (.+)/feed /$1 [R=301,L]
RewriteRule (.+)/comment-page /$1 [R=301,L]
RewriteRule (.+)/trackback /$1 [R=301,L]
RewriteRule (.+)/comments /$1 [R=301,L]
RewriteRule (.+)/attachment /$1 [R=301,L]
RewriteCond %{QUERY_STRING} ^replytocom= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteCond %{QUERY_STRING} ^attachment_id= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

А переадресовывает именно на эту страницу? Пробуйте убрать все условия, кроме нужного. Если сработает, то вставляйте поочередно другие условия. Пробуйте менять их местами. Может у хостера что-то глючит. У меня подобное условие работает.

Epiq:
как в файле .htaccess сделать перенаправление с постов без слеша на окончание с .html ?

RewriteRule ^(.*)post$ http://www.site.ru/post.html [R=301,L]
big jacky:
Надо попробовать Ваш вариант с правами 444, но я по другому сделал.
Я сделал это в настройках плагина All In One WP Security. там есть такая настройка:

Кстати, сегодня вновь была необходимость правки .htaccess, с удивлением обнаружил, что права 444 слетели на 644, то ли хостинг, то ли вордпресс виноват. Попробую воспользоваться вашим советом.

Flea:

Но есть пару нюансов - эти записи отображаются на главной странице (что мне не нужно)

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

<?php if ( is_home() ) {

query_posts($query_string . '&cat=-3,-4');
} ?>

3, 4 - ненужные категории. Есть еще такой хук для function:

function exclude_cat($query) {

if ($query->is_home)
{$query->set('cat',' -3, -4');}
return $query; }
add_filter('pre_get_posts','exclude_cat');

Выбирайте, что по душе.

Flea:

также отображается надпись "Архив рубрики", хотя мне нужно, чтобы каждая запись могла иметь свой заголовок (h1 или h2).

Это правится в .php файлах темы, типа, archive.php, category.php и т. д.

big jacky:
У меня такие гадости делает плагин Yoast SEO. Оказывается там есть редактор .htaccess. И когда происходит обновление плагинов, то он активируясь/декативируюсь затирает .htaccess до дефолтного.
Лечится либо запретом на редактирование рнр файлов, либо сносом этой ненормальной заразы Yoast SEO.

Ближе к истине. Накануне редактировал .htaccess из админки, только плагином All in seo. Может это была причина? Запрет на редактирование php файлов - это выставление прав только на чтение (444), я правильно понимаю?

SeVlad:
Было у многих, кто неправильно составлял хтацесс.

Ты же именно это хотел узнать?

Хотел узнать причину и как решалась проблема. Вот код проблемного .htaccess:



# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^folder/names/file.php$ http://www.site.ru/new-file.html [R=301,L]

RewriteRule ^index\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Я не стал вставлять все правила типа, RewriteRule ^folder/names/file.php$ http://www.site.ru/new-file.html [R=301,L], их там порядка 200 штук.

Что может быть не так? Все редиректы выполняются как нужно.

Epiq:
как в файле .htaccess можно обозначить: "старый пост" и "новый пост", чтобы сделать перенаправление?

RewriteEngine On

RewriteBase /
RewriteRule ^old.html$ http://www.site.ru/new.html [R=301,L]
12 3
Всего: 29