Изменение произвольного тип записи(post-types) и исключение показа произвольного тип записи с нестан

MaxCrow

Member
Регистрация
25.12.2011
Сообщения
21
Итак, в чем собственно суть проблемы.
Решил я сделать сайт онлайн просмотра сериалов и для данного дела я нашел очень красивый шаблон для WordPress под названием Boxoffice и, не смотря на то, что столкнулся с парой проблем просто кровь из носа хочу использовать именно данный шаблон.
Проблема состоит в следующем, что в настройках шаблона предоставляется два варианта главной страницы первый вариант это blog (тут проблем нету стандартная главная страница) а вот с вариантом movies все для меня сложно, но именно эту страницу мне необходимо использовать.
К примеру, есть у меня 10 страницы с фильмами и естественно все 10 превьюшек отображаются на главной, однако мне нужно отключить показ одной из них.
Не один из плагинов которые дают эту возможность не срабатывают поскольку это не стандартная страница, а исключение записей из цикла осуществить с помощью функции query_posts у меня не выходит скорее всего из за того что выводятся произвольного типы записи(post-types) в которых я вообще неразбираюсь(

Второй момент, заключается в том что произвольная запись (фильм) называется movie и вид ссылки на страницу фильма скажем, имеет вид http://любойсайт.ру/movie/названиефильма , а мне необходимо изменить “movie” на “online” однако если просто напросто заменить в post-types.php “movie” на “online” то конечно работать будет но посты доступны не будут поскольку все равно находится будут по адресу http://любойсайт.ру/movie/названиефильма а не http://любойсайт.ру/online/названиефильма
Вот тестовый сайт для примера:
http://seriesonline.pusku.com/
Вот сам шаблон
Посмотреть вложение Boxoffice.zip
В общем, помогите, кто чем может люди добрые)
Извиняюсь за длинный текст просто уже немного накипело за часов 10ть)
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
К примеру, есть у меня 10 страницы с фильмами и естественно все 10 превьюшек отображаются на главной, однако мне нужно отключить показ одной из них.
Если я правильно понял:
1) Убрать в черновики
2) Сменить дату на более раннюю, чтобы запись съехала ниже

записей из цикла осуществить с помощью функции query_posts у меня не выходит скорее всего из за того что выводятся произвольного типы записи(post-types) в которых я вообще неразбираюсь(
Всё же смутно всё описано
Выложи имеющийся запрос и чего ты хочешь

то произвольная запись (фильм) называется movie и вид ссылки
Хм, а категорию сменить?

PS Качать и ставить шаблон лень :D
Текст длинный и мало понятный
Правильно поставленный вопрос несет в себе ответ :D
 

MaxCrow

Member
Регистрация
25.12.2011
Сообщения
21
BaNru, здравствуй, года идут люди, которые что-то решают, не меняются.)
Нет, увы в этот раз не попал)
Если убрать в черновик то страницы как таковой на сайте существовать не будет, а если сменить дату то да, запись просто будет выводится ниже, а нужно что бы просто она не отображалась на главной странице (то есть она должна существовать, что бы я к примеру мог поставить на нее ссылку с новости и чтобы она отображалась в sitemap.xml в общем на этих вещах заострять внимание не стоит просто нужно отключить ее показ на главной странице)тег
По сути это делается в файле functions.php так :
Код:
function exclude_post($query) {
if ($query->is_home)
{$query->set('post__not_in', array(99, 121) );} // id записи (поста) показ которого необходимо исключить
return $query; }
add_filter('pre_get_posts','exclude_post');
Но как я уже писал выше в данном шаблоне это не прокатит (Нужно смотреть именно как он устроен ведь, скорее всего, исключать надо не “ post ” и не из “ home ”.
Или искать вообще другое решение.
А по проблеме:
записей из цикла осуществить с помощью функции query_posts у меня не выходит скорее всего из за того что выводятся произвольного типы записи(post-types) в которых я вообще неразбираюсь(
Категорию сменить увы не прокатит потому что это не категория, а произвольный тип записи(то есть такого в стандарте нету, это не категория, не запись, не архив, не тег и не страница, а отдельный тип созданный создателем темы) нужно править post-types.php в котором в wordpress задаются так сказать не стандартные структуры страниц.
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
я хоть в вордпресс и не разбираюсь, но причем тут шаблон? если все запросы делает ядро и модули, тоесть выставте кол-во отображения на странице новостей нужное, и все, к примеру ноль или 1 там
 

MaxCrow

Member
Регистрация
25.12.2011
Сообщения
21
я хоть в вордпресс и не разбираюсь, но причем тут шаблон? если все запросы делает ядро и модули, тоесть выставте кол-во отображения на странице новостей нужное, и все, к примеру ноль или 1 там
Нет, все, что я описал выше делается именно в шаблоне это я гарантирую 100% с WordPress я уже давно работаю и знаю что и где, а вот как не знаю)
Суть не в количестве отображения на странице новостей, а потребность именно в отключении показа лиш определенных!
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
WP поддерживает дополнительные поля. Есть вариант воспользоваться ими и сделать условие
Открыл шаблон, за вывод отвечает вот этот запрос в /lib/movie-home.php
Код:
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type=movies'.'&paged='.$paged);
Теперь у той записи, что не надо выводить создаем доп.поле, например noindex со значением 1
И заменить запрос как-то так
Код:
$wp_query -> query ( array (
     'post_type' => 'movies',
     'paged' = > $paged,
     'meta_query' => array (
          array (
              'key' => 'noindex',
              'value' => '1',
              'compare' => '!='
          )
     )
));
Если не заработает, можно попробовать от обратного, т.е. от "если надо"
Код:
$wp_query->query('post_type=movies'.'&paged='.$paged.'&meta_key=noindex');
По второму вопросы - тогда тут два варианта я вижу
1) Делать редирект через .htaccess
2) Открывать БД и ручками править старое )))
заменить в post-types.php “movie” на “online”
И менять там, кстати, надо в двух местах
Код:
register_post_type('movies',
Код:
register_taxonomy('movie-genre',array('movies')
то конечно работать будет но посты доступны не будут поскольку все равно
См. выше предложенный код
Код:
$wp_query -> query ( array (
     'post_type' => array('movies','online'),
:)
 

MaxCrow

Member
Регистрация
25.12.2011
Сообщения
21
Теперь у той записи, что не надо выводить создаем доп.поле, например noindex со значением 1
Если я правильно понял ты про Custom Fields? Если да то, увы, но с произвольным типом записи не прокатит, там просто напросто не предусмотрены пользовательские поля.

А по поводу:
И менять там, кстати, надо в двух местах


Код:
register_post_type('movies',
register_taxonomy('movie-genre',array('movies')
Я не догнал но на всякий случай проверил) Ничего не происходит если заменять в этих строках ведь это 'movies' а не 'movie'


Или я как то не правильно выразился (как правило, у меня это часто бывает))))
В общем попытаюсь еще раз объяснить что я не могу сделать)
В данный момент ссылки на фильмы имеют вид:

А мне необходимо что бы имела вид http://seriesonline.pusku.com/online/gannibal
Прошу обратить внимание, что "movie" это не страницы,запись,категория или тег, а это произвольный тип записи
т.е как минимум нужно править в post-types.php, а там дальше я понятия не имею....(((
В общем если в post-types.php просто "movie"(не movies, а именно movie) заменить на "online" то создавая новую запись она будет иметь тот вид который нужен (http://seriesonline.pusku.com/online/новаязапись) однако при нажатии на нее доступна она не будет ошибка 404. т.е нужно еще гдето подправить...(
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Ну тогда создай это поле, примерно так
в файле metabox.php добавь в первый массив типа
Код:
array(
'name' => 'Вывод на главной',
'desc' => '',
'id' => $prefix . 'index',
'type' => 'checkbox',
'std' => ''
),
Вроде должен будет появиться в базе Custom Fields после редактирования записи
Только не 'key' => 'noindex', а 'key' => $prefix.'index'
сам $prefix смотри в БД или настройках темы.

А ты вообще видел чего качаешь?
Тебя не смущает класс class Get_links {} в начале functions.php?

В данный момент ссылки на фильмы имеют вид:
По второму вопросы - тогда тут два варианта я вижу
1) Делать редирект через .htaccess
2) Открывать БД и ручками править старое )))
Код:
'rewrite' => array( 'slug' => 'movie', 'with_front' => FALSE,),
 
Верх Низ