Как вывести в дочернем посте краткое описание с родительского поста

Как вывести в дочернем посте краткое описание с родительского поста | n-wp.ru
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

В WordPress есть возможность открывать изображения на отдельной странице. Можно даже сделать простую галерею изображений, где каждое будет открываться на отдельной странице, на которой помимо него будут еще и ссылки-миниатюры на предыдущее и следующее изображения галереи. Более подробно о шаблонах дочерних страниц можно прочитать в посте Шаблоны в WordPress. Такие возможности отлично подходят для создания фотоблога. Однако есть один недостаток, который мне не нравится в такой огранизации — дочерняя страница, на которой выводится изображение (или другое вложение), обычно не содержит более никаких дополнительных сведений, кроме самого изображения, его названия, и пары миниатюр, и поэтому тот, кто попадает на нее из поисковой системы или по прямой ссылке, не сразу может сориентироваться и понять, что это страница с вложением, а не полноценная родительская страница. Исправить эту ситуацию можно, если добавить на дочернюю страницу немного описания — цитату с родительской страницы и ссылку на родительскую страницу. Цитата сразу даст понять, что вы такое просматриваете, а ссылка на родительскую страницу позволит посетителю открыть полноценный материал, содержащий все миниатюры вложений.

Как вывести в дочернем посте краткое описание с родительского поста

Для начала нужно определить id родительской страницы (той страницы, на котрой расположена миниатюра изображения, открываемого на отдельной, дочерней странице). Для этого вставьте такой код функции, определяющей id родительской страницы, в файл functions.php вашей темы:

function get_topmost_parent($post_id){
  $parent_id = get_post($post_id)->post_parent;
  if($parent_id == 0){
    return $post_id;
  }else{
    return get_topmost_parent($parent_id);
  }
}

Теперь можно, используя этот id, вывести цитату из родительского поста. Для этого вслед за предыдущим кодом вставьте такой:

function get_the_excerpt_here($post_id)
{
  global $wpdb;
  $query = "SELECT post_excerpt FROM $wpdb->posts WHERE ID = $post_id LIMIT 1";
  $result = $wpdb->get_results($query, ARRAY_A);
  return $result[0]['post_excerpt'];
}

подробнее о функции the_expert

Ну а теперь осталось только вывести в нужном месте результат работы этих двух функций. Для этого открываем шаблон вложений (attachmet.php, или image.php, или video.php — поднобнее о шаблонах), и вставляем в него такой код:

<div>
  <a title="вернуться на страницу post_parent); ?>" href="post_parent); ?>" rev="attachment">post_parent); ?></a> // ссылка на родительскую страницу
</div>
<div>
   // определяем id родительской страницы и кратко цитируем ее содержимое
</div>

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

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий