Одна из задач, которая часто стоит перед начинающим разработчиком, который изучил html, css, js — как сделать админку для клиента, при этом, разработчик знает как делать сайты на wordpress, но отойти от стандартной темы или шаблона не может. Давайте я научу вас использовать wp для создания сложных структурных тем, при этом используя его преимущества.
Задача
Клиент хочет начальную страницу, где в форматированном виде выводится название статьи, изображение и текст. При этом, клиент желает время от времени править через админку, материал. Поскольку на главной странице, таких блоков может быть много, давайте решать задачу.
Для начала, вам нужно создать свой шаблон страницы (здесь можно прочитать как это сделать), создать страницу на основе этого шаблона и установить ее в качестве заглавной.
Теперь создаем запись, где заполняем заголовок, саму статью и задаем миниатюру изображения (это важно, именно миниатюру). Публикуем статью.
Теперь нам нужно определить id данной статьи. Как это сделать, читаем здесь. Записали?
Открываем файл function.php который находится в папке темы и забиваем код (в самый конец файла):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function getPostByIdwithContent($id){ //выводит блок с заголовком, миниатюрой и текстом записи $out=''; $post=get_post($id); $out.='<div class="main-art"><h3>'; $out.=$post->post_title; //получаем заголовок записи $out.='</h3>'; $out.='<div class="art-img">'; $out.=get_the_post_thumbnail($id, 'ppthmb'); //получаем миниатюру, ppthmb - класс изображения $out.='</div>'; $out.='<div class="art-content">'; $out.=$post->post_content; //получаем содержимое $out.='</div></div>'; echo $out; } |
данная функция, получает id статьи и формирует блок main-art в котором выводит заголовок, изображение, содержимое статьи.
Чтобы блок сработал, нужно добавить вызов функции в нужно место. Добавим вызов функции, на главной странице, которую мы создавали в предыдущем пункте:
1 |
<?php getPostByIdwithContent(13) ; ?> |
где 13 — id созданной записи.
Теперь клиент может менять информацию, и она будет выводится в нужном для нас шаблоне. Названия классов и блоков в коде — можно менять.