Ваш путь: Главная » Контент, шапка site, Сниппеты, хаки, функции » текущая страница

возможно заказать разработку или сопровождение, услуги вашего сайта/блога


обновлено 2024-06-03 в теме: Контент, шапка site; Сниппеты, хаки, функции
Запросто с WordPress создание и продвижение сайтов ATs media

Получаем данные страницы и выводим информацию на экран в произвольном месте

Не так давно мне был задан вопрос одним из владельцев сайта (он сам пытается обслуживать свой сайт), однако, решить возникший вопрос у него не хватило знаний и он обратился ко мне. Вопрос кратко в следующем: ему требовалось вывести информацию имеющейся страницы в произвольном месте сайта. То есть ему нужно было в одной из категорий товаров магазина вывести некоторое описание…

 

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

 


 

 

 

 

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

 

То есть не редактировать блоки, а всего-лишь подредактировать текст на странице, данные которой автоматом отправиться туда, куда требуется.

 

Это я, разумеется, предположил один из примеров… а их может быть масса в своем разнообразии…

 

 

Один из вариантов решения данной задачи является таким:

 

 

получаем и выводим информацию страницы в произвольном месте сайта

 

 

Этот код нужно записать в файл functions.php шаблона вашей активной темы (или, скажем, в личный плагин):

 

 

Получаем данные страницы и выводим информацию на экран

 

 

Вариантов получения и вывода информации достаточно много, предлагаю один из… Используем функцию: get_posts() – есть варианты с setup_postdata() но это иная тема, о которой в следующей инструкции.

 

 

function too_my_pages_uslugy() {
$post_id = 2; // указываем ID страницы
$post_object = get_post( $post_id ); // $post_object работаем с объектом
$post_title = $post_object->post_title; // например, получаем заголовок страницы
//$post_content = $post_object->post_content; // получаем содержание страницы: неформатированный вариант
$post_content = apply_filters( 'the_content', $post_object->post_content ); // этот фильтр выведет форматированные данные
//$status_pst = $post_object->post_status; // получаем статус поста
//$links_pst = $post_object->guid; // ссылка по id записи
//$post_image = get_the_post_thumbnail( $post_id, 'large', array( 'class' => 'img-responsive' ) ); // получаем изображение страницы

<h2 class='title' title='<?php echo $post_title; ?>'><?php echo '(статус ' . $status_pst . ') '; echo $post_title; ?></h2>

<div><div><div class="image-container"><?php if ( has_post_thumbnail()) { ?>
<?php the_post_thumbnail( 'medium' , array( 'itemprop' => 'image' )); ?>
<?php } ?><?php echo $post_image; ?></div><?php echo $post_content; // . '<br />' если выводим НЕ форматированный ?>
</div></div>
<?php }

 

 

немного теории по коду

 

 

Пробежимся по основным моментам (разумеется, это только шаблон, код можно как угодно настраивать под свои требования):

 

Это: $post_id = 2; как и указано в комментарии, обозначим id страницы, которой выводим данные. Работаем с объектом. В данном случае это id 2

 

$post_title = $post_object->post_title; – получаем заголовок страницы (можно запросить данные, если вам требуется вывести title какого-то SEO плагина и пр.

 

$post->comment_count; // в виде 1

 

 

Нота:

указывать ID поста в виде целого числа – $post_object = get_post( 5 ); – возможно с выходом версии WordPress 3.5.

А в более старых версиях WP ID поста нужно было передавать непременно в переменной, собственно как и показано для наглядности в сниппете выше

 

 

$post_id = 2;

$post_object = get_post( $post_id );

 

 

итак:

 

$post_object = get_post( $post_id ); – получаем данные такой-то ID страницы. Однако, обратите внимание на следующую строку (фильтр):

 

$post_content = apply_filters( 'the_content', $post_object->post_content ); – это боле логичный вариант, выводит форматированнные данные вместе с картинками и пр…

 

$links_pst = $post_object->guid; – возможно получить ссылку типа: https://mihalica.ru/?p=2

 

$post_image = get_the_post_thumbnail … – получаем миниатюру записи… или можно как-то иначе, например, по селектору CSS: image-container

 

и пр. и пр. смотрите в документации (ссылку дам чуть позже).

 

…и далее собственно выводим информацию…

 

 

Напоминаю: в данном примере показана только-лишь произвольная функция too_my_pages_uslugy Ее возможно определить и шорткодом, чтобы использовать возможность вывода информации средствами некоего конструктора страниц, к примеру, в плагине ЭЭлементор, который нынче весьма опрометчиво моден!

 

 

Получить данные страницы можно разнообразные, к примеру: $post->post_author; id автора,

 

$post->post_date; // 2024-12-09 07:55:07

или $post->post_date_gmt;  // 2024-12-09 07:55:07 даты

 

echo $post->post_modified; // 2024-12-09 07:55:07

echo $post->post_modified_gmt; // 2024-12-09 07:55:07

 

 

получаем статус поста $post->post_status; используется в коде выше.

 

 

…и пр. и пр.

 

 

 

Создание и продвижение сайтов; помощь по сайту, настройки, сопровождение и пр. – студия ATs media запросто с WordPress

 

 



...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !



Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...





Нажатия на кнопочки определяют Ваше высокое гражданское сознание

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©


  1. Здравствуйте! А как шордкод сделать правильно для этого решения? вы не написали))

    Ответить - Сергей

    • Привет!
      1) определите шорткод (разместите строку над функцией):

      add_shortcode( 'задайте_имя', 'too_my_pages_uslugy' ); //имя латиницей!

      2) выводите шорт, если в файле, то:
      do_shortcode( '[задайте_имя]' );
      если типа в виджете то, скорее всего, так:
      [задайте_имя]

      Можете задать условия для отработки, если вдруг шорткод отключить на время, – например, чтобы в этом случае не выводилась костяшка шорта:
      add_shortcode( 'задайте_имя', '__return_false' );

      Ответить - Михаил

  2. Вот это, Автор, большое спасибо вам. Очень полезная идея и урок…

    Ответить - Маргарита