Вы можете создать свою функцию-фильтр, связать ее с событием load_textdomain_mofile в функции load_textdomain и поместить в functions.php. Сама функция будет иметь примерно такой вид:
function tw_replace_translation( $mofile, $domain ) { if ( $domain == 'ts-fab' ) { $mofile = 'путь к нужному MO-файлу'; } return $mofile;}add_filter( 'load_textdomain_mofile', 'tw_replace_translation' );
Фактически она будет подменять путь к MO-файлу на нужный.
Проще всего сделать существующую тему адаптивной.
Если такой возможности нет, то можно с помощью функции wp_is_mobile() в теме подменять разметку и стили. Добавление стилей можно реализовать например так:
function tw_mobile_styles() { if ( wp_is_mobile() ) { wp_register_style( 'tw-mobile-style', 'ссылка на CSS для мобильных', array('ID основного CSS') ); wp_enqueue_style( 'tw-mobile-style' ); }}add_action( 'wp_enqueue_scripts', 'tw_mobile_styles' );
Если необходимо подменять всю тему, то можно использовать такой код:
function tw_mobile_template( $template ) { if ( wp_is_mobile() ) { return 'имя папки с мобильной темой'; } return $template;}add_filter( 'template', 'tw_mobile_template', 99999, 1 );
Плагин кеширования также нужно доработать. Фактически нужно добавить еще один параметр для ключа кеша, который меняется в зависимости от того мобильное устройство или нет.
На ваш основной вопрос я ответил. Если требуется выделенный каталог со своей структурой, то можно создать новый тип записей со своей таксономией. Плагин Custom Post Type UI позволяет это сделать через админку, можно также их создать через соответствующие функции, о чем я писал выше.
Указанные плагины скорее-всего создают собственные типы записей и таксономии, а также добавляют какую-то свою логику для реализации дополнительного функционала. Если те модули в общем-то покрывают ваши потребности, то имеет смысл использовать их, они более отлажены и работают.
Скорее-всего какой-то плагин или код в шаблоне добавляет некорректно работающую функцию-фильтр для события the_content. Вполне возможно, что в той функции возникает какая-то ошибка и она не возвращает содержимое.
Можно создать новый тип записи с игроками, а также новую связанную таксономию с командами. Это все делается без каких либо плагинов, достаточно просто в functions.php добавить вызов функций register_post_type() и register_taxonomy() с нужными параметрами для события init. Для облегчения ввода дополнительных данных можно использовать плагин Advanced Custom Fields, например.
Да, действительно, фреймворки сильно ускоряют разработку системы под ключ, но далеко не все клиенты готовы это оплачивать. Если клиенту нужен обычный сайт-портфолио, каталог или интернет-магазин, то ему нет смысла оплачивать несколько десятков часов на создание движка с более-менее внятной админкой. Достаточно просто взять WordPress, OpenCart, PrestaShop или другую подходящую систему, подобрать нужные модули и все настроить. Это занимает гораздо меньше времени разработчика и, что немаловажно, в целом более отлажено и протестировано. Помимо этого найти специалиста для поддержки сайта также не составит труда найти. Суммарные расходы на разработку и поддержку сайта получаются существенно меньше.
В итоге имеем вполне закономерную картину, когда подавляющее большинство клиентов запускает сайт на одной из популярных CMS: статистика, которые в основной своей массе написаны на PHP. На Django популярных CMS не так много, увы.
Вероятно, вы просто не сталкивались со сложными системами вроде Magento 2. Там для внесения более-менее внятных правок нужно потратить достаточно много времени, чтобы вникнуть в работу системы. А вообще, если сразу полезть немытыми руками в код, то гарантированно получится еще один костыль.
Я об этом:
Скорее-всего никаких санкций наложено не будет. Насколько я понял, это фактически обычное адаптивное меню с дополнительными скриптами.
Заказчик смотрит на ситуацию с другой стороны.
Для многих из них очень важна стоимость разработки и поддержки проекта. Так уж сложилось, что разработчиков на PHP со знанием популярных фреймворков в целом больше и они в среднем дешевле. Также нужно учесть, что инфраструктура у PHP развита лучше. По этой причине они отдают предпочтение системам на PHP.
Для этого достаточно добавить свой фильтр для вывода содержимого. Вот пример:
function auto_add_affiliate_links($text){ $replace_words = array( /* текст для поиска => ссылка для замены */ 'amazon' => '<a href="http://amazon.com/ref_id">Amazon</a>', 'ebay' => '<a href="http://ebay.com/ref_id">Ebay</a>', 'buy at amazon' => '<a href="http://amazon.com/ref_id">buy at amazon</a>' ); $text = str_replace(array_keys($replace_words), $replace_words, $text); return $text;}add_filter('the_content', 'auto_add_affiliate_links');add_filter('the_excerpt', 'auto_add_affiliate_links');
Самый простой способ - это использовать плагин: https://ru.wordpress.org/plugins/duplicate-post/ Дополнительные поля он также копирует.
Да, таких библиотек достаточно много. Посмотрите на Angular или ReactJS. Возможно, они вам подойдут.