Можно ли активировать шаблон страницы без ручного выбора в wp-admin?

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

Предположительно вы используете wp_insert_post для создания ваших страниц. Сделав это, сделайте

update_post_meta($id, '_wp_page_template', 'my_template.php'); 

Вариант 1 (лучший вариант):

Если у вас есть разные шаблоны страниц для каждой из страниц, вы можете назвать шаблоны в формате «page- {slug} .php», и WordPress автоматически подберет их, если другой шаблон страницы уже не назначен.

Например: для страницы «О» с пропуском «about» ваш шаблон страницы будет иметь имя page-about.php, чтобы автоматически назначать эту страницу.

Подробные сведения см. В разделе страницы иерархии шаблонов WordPress .

Вариант 2 (вариант, если у вас есть доступ к базе данных):

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

Если у вас есть доступ к базе данных, вы можете запустить SQL для их обновления. Например, напишите такую ​​строку для каждой страницы, заменив соответственно post_id и meta_value:

 UPDATE wp_postmeta SET meta_value = 'new-template.php' WHERE meta_key = '_wp_page_template' AND post_id = 1234; 

Вы также можете удалить все существующие назначения шаблонов страниц с помощью этого SQL:

 DELETE * FROM wp_postmeta WHERE meta_key = '_wp_page_template'; 

Конечно, перед продолжением убедитесь, что вы создали резервную копию своего сайта и базы данных.