Шорткод для вывода внутренней ссылки на пост с миниатюрой и цитатой

Шорткод для вывода внутренней ссылки на пост с миниатюрой и цитатой | n-wp.ru

Наверное вы обратили внимание, как оформляется ссылка, если ее вставить в Google Plus или Facebook? Отображается название страницы, миниатюра и краткий текстовый анонс – удобно и информативно. Решил я создать что-то подобное для внутренних страниц блога – создать шорткод для вывода нонса любого поста, с заголовком, миниатюрой и цитатой поста.

Шорткод для вывода внутренней ссылки на пост с миниатюрой и цитатой

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

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

 
function tf_get_the_excerpt_id($atts) {
    extract(shortcode_atts(array(
    	"foreword" => 'Так же смотрите',
		"id"     => ''	
	), $atts));
	global $post;
    $post_id = get_post($id);
    $title = $post_id->post_title;
    $url = $post_id->guid;
    $excerpt = $post_id->post_excerpt;
    $first_img = get_the_post_thumbnail($id, 'thumbnail');
    return '
    
'.$foreword.'
'. $first_img .'
'. $excerpt . '
'; } add_shortcode('excid', 'tf_get_the_excerpt_id');

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

/*оформление шорткода excid*/
.excid-div {margin:25px 0 15px 0;}
.excid-foreword {text-transform:uppercase;font-size:12px;font-weight:600;font-family: segoe wp,segoe ui,verdana,arial,helvetica,sans-serif;margin-bottom:15px;}
table.excid-table {vertical-align:middle;margin:0;padding:0;}
td.excid-table-td1 {vertical-align:middle;text-align:right;width:224px;}
td.excid-table-td2 {vertical-align:middle;text-align:center;width:48px;}
td.excid-table-td3 {vertical-align:middle;text-align:left;}
div.excid-title {font-size:0.85em;font-weight:600;margin:0 10px 0 0;}
div.excid-first_img img {width:48px; height:auto;}
div.excid-content-left {font-size:0.85em;margin:0 0 0 10px;color:#aaa;}

Шорткод используется так:

или так

foreword - предисловие
id - ID поста

Предисловие - это завлекающий текст, советующий обратить внимание на ссылку. Если вы не будете использовать в шорткоде foreword="текст предисловия", то по-умолчанию в предисловии будет выведено Так же смотрите, но вы можете указать и другой текст.

Шорткод для вывода внутренней ссылки на пост с миниатюрой и цитатой

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

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

2 Комментарии

  1. Интересный код. Но, почему-то, не работает в нем конструкция

    $excerpt = $post_id->post_excerpt;

    Выводится пусто.
    Попытка использовать

    get_the_excerpt();

    Выводит первые строки текущей новости.

    Помогите новичку.

  2. Не смог побороть. Поэтому, использовал такую конструкцию:

    $excerpt = $post_id->post_content;
    $excerpt = wp_trim_words( $excerpt, 25);

    Может быть кому-то пригодится.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*