Статьи

Как разработать пользовательский плагин отрывка страницы для WordPress

В WordPress легко показывать списки постов. Файл index.php вашей темы, вероятно, обрабатывает все ваши категории, авторов и поисковые запросы. Однако иногда вам нужно немного больше контроля. Возможно, у вас есть несколько страниц продукта, но вы хотите разместить две или три на своей домашней странице без повторного ввода данных вручную.

В этом уроке мы разработаем небольшой плагин WordPress, который заменяет [шорткод] ссылкой на определенную страницу или сообщение. Ссылка будет отображать заголовок, миниатюру и выдержку, но вы можете настроить ее, чтобы показать, какие детали вам нужны.

Создание плагина

Создайте новый файл с именем showexcerptlink.php в папке плагинов (wp-content / plugins) и добавьте заголовок, чтобы его можно было идентифицировать с помощью WordPress:

 

Далее следует наша основная функция ShowExcerptLink (). Нам нужен один параметр: имя slug / permalink. Несмотря на то, что мы могли бы передать идентификатор, слаг будет лучшим вариантом, потому что он менее вероятно изменится при редактировании страниц. Вы можете добавить дополнительные параметры для управления выводом HTML.

 function ShowExcerptLink($params = array()) { extract(shortcode_atts(array( 'slug' => '' ), $params)); $html = ''; if ($slug == '') return $html; 

Теперь мы можем искать страницу или пост, используя объект WordPress WP_Query. Следующий код пытается найти слаг страницы, но если его не существует, вместо этого он ищет слаг поста:

 $q = new WP_Query("pagename=$slug"); if (!$q->have_posts()) { $q = new WP_Query("name=$slug"); } 

Теперь мы можем запустить цикл WordPress - хотя он будет содержать только ноль или один пост:

 // the loop while ($q->have_posts()) { $q->the_post(); 

Вывод HTML теперь генерируется в строке $ html. Вы можете использовать любую стандартную функцию, которую вы обычно находите в цикле WordPress. В этом примере мы выведем заголовок (H2), миниатюру и отрывок:

 // generate HTML $link = '<a href="' . get_permalink() . '>'; $html .= '<h2>' . $link . the_title('','',false) . "</a></h2>n" . (has_post_thumbnail() ? $link . get_the_post_thumbnail() . '</a>' : '' ) . get_the_excerpt(); 

(Этот код действителен в любой версии HTML, хотя HTML5 разрешит привязку вокруг
целый блок.)

Теперь мы можем завершить цикл, вернуть строку HTML и завершить функцию:

 } return $html; } 

Наконец, мы зарегистрируем нашу функцию как обработчик шорткода:

 // register shortcode add_shortcode('showexcerptlink', 'ShowExcerptLink'); 

Сохраните файл и активируйте плагин на панели управления WordPress.

Показ выдержки

Следующий шорткод теперь может быть добавлен к содержимому любой страницы или записи:

 [showexcerptlink slug=page-or-post-slug-name] 

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

 [showexcerptlink slug=grand-parent-slug/parent-slug/page-slug] 

Пожалуйста, не стесняйтесь использовать и изменять код по своему усмотрению.