Maksym: Либо, кроме собственных хуков, плагин сам может использовать хуки ядра или другого плагина - в данном случае, WooCommerce. Соответственно, можно хукаться в тот же хук, отлючать-включать функцию плагина, таким образом меняя приоритет.
я вам скинул все что было в .htaccess а вы тут начинаете
Этого в .htaccess вообще быть не должно, с этим кодом в .htaccess у вас апач должен ругаться на конфигурацию. Это правило для Nginx.
вы думаете что я настолько тупой что не понял что вы там написали? я скинул все содержимое файла .htaccess и не как не конфиг nginx
Никто никого тупым не называл и не считал, вам говорят что это не то и вообще этого мало. Не надо стартовать, если я еще не тронулся умом, то это вы обратились за помощью. Есть люди, которые готовы потратить свое время (бесплатно!) чтобы попробовать вам помочь. Помогите людям помочь вам.
Niriter Inc.: если сейчас Apache, то конфиг Nginx уже до лампочки. Кроме того, вы показали только одно правило из всего конфига. В общем, сложно от вас получить хоть какую-то полезную информацию. Поиграю в телепата - смотрите мой ответ.
В этом и проблема.
1. WordPress читает правила сверху вниз, по порядку. И сравнивает.
2. При регистрации пост-тайпа ваши новые правила будут сверху. С них он и начнет.
3. При нахождении первого же совпадения, дальнейшие проверки прерываются, и WP продолжает работу, используя совпавшее правило.
4. Правило без /mark/ будет идентично правилу обычных страниц (page)
5. Соответственно, при попытке зайти на страницу, получите 404 - потому что WP будет смотреть ваш custom post type с таким слагом, а не страницу, такой записи в mark он не найдет, поэтому выдаст 404.
6. Если вы поставите ваши правила в низ массива rewrite_rules - произойдет обратное. При запросе страниц все будет ок (потому что первое правило в списке будет по страницам, его WP и подхватит), а при запросе вашего CPT будет 404 - потому что WP возьмет его слаг и спросит страницу с таким слагом. Ее, естественно, не будет - отсюда 404.
Это если говорить о механизме из коробки.
Впрочем, WP - это всего лишь кучка PHP-кода, поэтому в теории можно сделать все, что угодно. Можно хукаться в дальнейшие фазы обработки запроса и там делать дополнительные проверки. Посмотрите тут для начала: https://kellenmace.com/remove-custom-post-type-slu...
Даниил Вершинин: Естественно. Потому что query_posts заменяет основной запрос (и попутно ломает все, что на нем завязано, начиная с пагинации - именно поэтому его не стоит использовать, особенно если вы не понимаете архитектуру ядра WP). А get_posts() - это не деструктивная функция, она вызывает новый WP_Query, отдельного от основного. Поэтому в вашем случае оно и не работает. Вам нужно модифицировать основной запрос, для этого есть хук pre_get_posts. Вот в нем и устанавливайте ваши параметры.
Только не Попов. Последствия его обучения вылазят боком многим клиентам, а нам потом приходится это говнецо разгребать. Потому что клиенты приходят со слезами на глазах и умоляют исправить то, что наделали эти последователи Попова. Дилетанты.
iBird Rose: Да, ответ получился слишком общий, потому что сразу на два комментария. По поводу качества это адресовано больше devalone.
Что касается стоимости - совсем не факт. Рейты на рынке разные, как в экосистеме WP, так и в экосистемах фреймворков. На тех же Ларе, Симфони или Yii есть рейты и по $20, и по $200. То же касается WP. Если отталкиваться от объема работы, то на фреймворке он будет все же больше, имхо. Да, и под WP есть куча плагинов (в том числе адекватных, которые можно и нужно использовать), и под фреймворки есть куча готовых либ, которые существенно уменьшат объем работы. Плюс, с WP вполне можно использовать composer packages, что еще больше упрощает жизнь, если научиться этим правильно пользоваться (в связке с WP).
В общем, я не совсем понимаю откуда у вас такое утверждение, на чем оно базируется.
iBird Rose: devalone: Не несите ерунду. Если за дело возьмется нормальный WordPress-разработчик (именно разработчик, хорошо знающий WP) а не имплементатор (который "разрабатывает" сайты на WP устанавливая кучу говноплагинов), то все будет в полном порядке.