Overed get_template_part ('partials / post', 'sidebar'); с плагином

Я работаю над сайтом для клиента, у которого есть тема, созданная для них другим разработчиком. Они попросили меня внести некоторые изменения на сайт, и я хотел бы поместить все мои изменения в плагин в качестве вежливости с оригинальным разработчиком темы. Пока это просто с функциями и CSS. Теперь мне нужно изменить файл темы. По сути, я хотел бы заменить один файл темы другим, который я сильно отредактировал.

В этой теме файл, который я хотел бы заменить, вызывается следующим образом:

get_template_part( 'partials/post', 'sidebar' ); 

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

Я не знаю, как это сделать, и поиск до сих пор очень мало помог. Это возможно?

TL; DR: вместо этого используйте дочернюю тему 🙂


Если мы копаем код для get_template_part () , там есть действие – get_template_part_{$slug} – которое мы могли бы подключить.

Копаясь немного дальше, get_template_part () вызывает locate_template () , который вызывает load_template () . К сожалению, в любой из этих функций нет ничего невозможного, поэтому мы не можем подключить и изменить что-либо (за исключением возможности устанавливать переменные через вызов extract () в load_template () …. но мы не можем переопределить вызываемый файл шаблона, так что это не очень полезно!)

Таким образом, он выглядит как ваш единственный вариант, чтобы поймать это, запустив код в get_template_part_partials/post action. Проблема в том, что это не позволит вам фильтровать шаблон, который называется – он просто позволит вам запустить код при вызове шаблона. Если все, что вы хотите сделать, это добавить некоторый результат над шаблоном кода, тогда это вам подойдет, но я сомневаюсь, что это все, что вы хотите сделать!

Все вокруг – использование детской темы .

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

Однако, является ли плагин лучшим выбором? Плагины обычно используются для добавления модульных функций на сайт, а не для изменения внешнего вида. Это область тем.

Фактически вы можете создать дочернюю тему, которая позволит вам изменить тему, которую использует сайт, без внесения каких-либо изменений в родительскую тему. Вы должны иметь возможность применить все изменения, которые вы уже сделали здесь, плюс у вас есть бонус, который get_template_part () будет автоматически использовать файл в вашей дочерней теме, если он существует , прежде чем вернуться к родительской теме.

в первую очередь вы найдете каталог вашего каталога partial-sidebar.php. когда вы найдете Get_template_directory_uri (). то «../» это означает, что одна папка вернется, если ваша частично-sidebar.php является резервной папкой плагина, а затем используйте ее как «../Get_template_directory_uri()/wp-content/» и так далее