X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужна подсказка по Php в Wordpress. [работаю в Functions.php], кодить не прошу
S1xteen
S1xteen
Topic Starter сообщение 20.9.2012, 22:57; Ответить: S1xteen
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 293
Регистрация: 20.9.2010
Поблагодарили: 64 раза
Репутация:   12  


Привет. Борюсь с кастомными типами записей в WP, а точнее адекватными url адресами в них.
Я создаю два собственных типа и так как wp не разрешает дважды объявлять такие функции как
function create_post_type(); function wpq_permalinks(); function wpq_term_link()

мне приходится каждый экземпляр кода для каждого нового типа постов засовывать в одну функцию. В этом то и проблема.

Суть:
Вместо такого
Развернуть/Свернуть
add_filter('post_type_link', 'wpq_permalinks', 10, 3);
add_action( 'init', 'create_post_type' );
function create_post_type(){
//Пропустим много кода
global $wp_rewrite;
  $wp_rewrite->add_rewrite_tag('%model%', '([^/]+)', 'model=');
  $wp_rewrite->add_rewrite_tag('%taxonomy%', '([^/]+)', 'taxonomy=');
  $wp_rewrite->add_permastruct('taxonomy', '/model/%taxonomy%', false, EP_CATEGORIES);
  $wp_rewrite->add_permastruct('model', '/model/%taxonomy%/%taxonomy%', false);
}

add_filter('post_type_link', 'wpq_permalinks', 10, 3);
add_action( 'init', 'create_post_type' );
function create_post_type(){
//Пропустим много кода
  global $wp_rewrite;
  $wp_rewrite->add_rewrite_tag('%review%', '([^/]+)', 'review=');
  $wp_rewrite->add_rewrite_tag('%taxonomy2%', '([^/]+)', 'taxonomy2=');
  $wp_rewrite->add_permastruct('taxonomy2', '/review/%taxonomy2%', false, EP_CATEGORIES);
  $wp_rewrite->add_permastruct('review', '/review/%taxonomy2%/%taxonomy2%', false);
}

Мне нужно сделать что-то вроде
Развернуть/Свернуть
add_filter('post_type_link', 'wpq_permalinks', 10, 3);
add_action( 'init', 'create_post_type' );
function create_post_type(){
//Пропустим много кода
global $wp_rewrite;
  $wp_rewrite->add_rewrite_tag('%model%', '([^/]+)', 'model=');
  $wp_rewrite->add_rewrite_tag('%taxonomy%', '([^/]+)', 'taxonomy=');
  $wp_rewrite->add_permastruct('taxonomy', '/model/%taxonomy%', false, EP_CATEGORIES);
  $wp_rewrite->add_permastruct('model', '/model/%taxonomy%/%taxonomy%', false);

  global $wp_rewrite;
  $wp_rewrite->add_rewrite_tag('%review%', '([^/]+)', 'review=');
  $wp_rewrite->add_rewrite_tag('%taxonomy2%', '([^/]+)', 'taxonomy2=');
  $wp_rewrite->add_permastruct('taxonomy2', '/review/%taxonomy2%', false, EP_CATEGORIES);
  $wp_rewrite->add_permastruct('review', '/review/%taxonomy2%/%taxonomy2%', false);

// но так конечно не работает
}

Как видите, одна переменная должна работать на два типа постов одновременно. Как это решается?
Буду благодарен за подсказки.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Max_Q
Max_Q
сообщение 20.9.2012, 23:28; Ответить: Max_Q
Сообщение #2


Участник
***

Группа: User
Сообщений: 118
Регистрация: 13.11.2011
Поблагодарили: 46 раз
Репутация:   13  


add_action( 'init', 'create_post_type' );
во втором параметре вы пишите имя функции, которые будет вызываться, когда произойдет событие init.
имя этой функции может быть любым, кроме тех, которые заняты.

так что дублирование имен функций - это неправильно.
и ругается на них не WP, а сам php, и он абсолютно прав.

Решение простое - переименовать вторую функцию и изменить второй параметр во втором вызове add_action на нее.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
S1xteen
S1xteen
Topic Starter сообщение 21.9.2012, 0:22; Ответить: S1xteen
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 293
Регистрация: 20.9.2010
Поблагодарили: 64 раза
Репутация:   12  


Спасибо, все получилось и это оказалось легче, чем я думал (:
PHP не владею, всё делаю при помощи гугла и думал, что create_post_type() это вроде зарезервированной функции которая должна работать как есть.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужны услуги php-разработчика, бартером за дизайн
вы мне скрипт, я вам дизайн
0 Caterpillar 187 Вчера, 23:15
автор: Caterpillar
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
143 contex1 65225 Вчера, 9:07
автор: contex1
Открытая тема (нет новых ответов) Нужна помощь в активации аккаунта AdSense
10 dimaguru 2606 15.12.2017, 11:12
автор: Ley
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1175 13.12.2017, 23:36
автор: Nell
Открытая тема (нет новых ответов) Недорогие услуги - php/js/mysql/jquery/bootstrap
2 vlads 661 13.12.2017, 21:01
автор: vlads


 



RSS Текстовая версия Сейчас: 18.12.2017, 5:53
Дизайн