and

Read meta description and title tag of a web page using PHP

Meta description and title tag are two important SEO parameter of any type of site. Every web page that needs to be rank better on search engines, must have meta description tag and title tag. Search engines like Google, Bing, YaHoo give the most value to these two SEO parameters.

Below is a given example which shows you how meta description tag looks like:

And the title tag looks like below example:

How to read the meta description and title tag of a web page content using PHP?

Now I am going to tell you the way of reading meta description and title tag using the popular web development language PHP. Several times it may be needed to get the meta description and title tag content.

Читайте также:  Java wsdl generate classes

Getting title tag means you have to get the text content between . And getting meta tag content means getting the content that you can see inside quotation like content=”meta description content”.

Reading meta description using PHP

Below is the given PHP code snippet to read the meta description tag:

If you run the above code snippet, then it will display meta description text content from the page www.example.com/page. Now below is the modified code of the above code snippet to check if meta description exists on the web page or not using PHP if condition:

Get title tag content text using PHP

The PHP code to read title tag is given below:

(.*)/siU", $fp, $title_matches); if (!$res) return null; $title = preg_replace('/\s+/', ' ', $title_matches[1]); $title = trim($title); return $title; > echo get_title("http://www.example.com/page"); ?>

Источник

Get Webpage Title and Meta Description from URL in PHP

Hi! Today we’ll see how to get webpage title and description from url in php. At times you may want to scrape some url and retrieve the webpage contents. You may need some third-party DOM Parser for this sort of task but PHP is uber-smart and provides you with some fast native solutions. Retrieving page title and meta description tags from url is lot easier than you think. Here we’ll see how to do it.

A Web Page title can be found between the tag and description within tag. Page title is self-explanatory and meta tags store various useful information about a webpage like title, description, keywords, author etc.

php-get-web-page-title-description-from-url

PHP Code to Get Webpage Title from URL:

In order to get/retrieve web page title from url, you have to use function file_get_contents() and regular expression together. Here is the php function to retrieve the contents found between tag.

]*>(.*?)/ims', $page, $match) ? $match[1] : null; return $title; > // get web page title echo 'Title: ' . getTitle('http://www.w3schools.com/php/'); // Output: // Title: PHP 5 Tutorial ?>

PHP Code to Get Webpage Meta Description from URL:

Get/Retrieve meta description from webpage is even more easier with php’s native get_meta_tags() method. The function get_meta_tags() extracts all the meta tag content attributes from any file/url and returns it as an array.

Here is the php function to get the meta description from url.

 // get web page meta description echo 'Meta Description: ' . getDescription('http://www.w3schools.com/php/'); // Output: // Meta Description: Well organized and easy to understand Web bulding tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, PHP, and XML. ?>

Some WebPages may miss meta tags and the above function will return null value if it is not present.

Also you can retrieve the rest of the meta tags in the same way.

We have seen how to get webpage title and meta description from url in php. I hope you enjoy this tutorial. If you have any queries please let me know through your comments.

Источник

get_the_title() │ WP 0.71

Получает заголовок записи (поста). Можно указать запись заголовок которой нужно получить. Функцию можно использовать внутри Цикла WordPress без указания параметра, тогда будет возвращен заголовок текущей записи в цикле. Или передайте ID поста в первом параметре и функция вернет заголовок указанной записи. Если пост «защищен паролем» или является «личным», то пред заголовком появится соответствующая метка: «Защищен: » (Protected: ) и «Личное: » (Private: ).

В WordPress нет функции get_post_title() , которую вы возможно будете искать по логике функций. Вместо нее используйте эту функцию.

Используйте функцию the_title_attribute(), когда нужно добавить заголовок записи в атрибут HTML тега.

Хуки из функции

Возвращает

Использование

$post_title = get_the_title( $post );

$post(число/WP_Post) Идентификатор записи. Можно передать сразу объект записи. По умолчанию: 0 — текущий пост в цикле

Примеры

#1 Выведем заголовок поста 25

echo get_the_title( 25 ); // или можно передать объект $the_post = get_post( 25 ); echo get_the_title( $the_post );

#2 Нужно ли экранировать вывод

Экранирование может быть нужно, когда заголовок выводится в атрибуте тега:

Какую-то общую функцию экранирования можно повесить на хук:

add_filter( ‘the_title’, ‘my_escape_title’ ); function my_escape_title( $title )

#3 Выведем заголовок текущей записи в цикле

echo get_the_title(); // или так в теге H1 echo '

'. get_the_title() .'

';

Список изменений

Код get_the_title() get the title WP 6.2.2

function get_the_title( $post = 0 ) < $post = get_post( $post ); $post_title = isset( $post->post_title ) ? $post->post_title : ''; $post_id = isset( $post->ID ) ? $post->ID : 0; if ( ! is_admin() ) < if ( ! empty( $post->post_password ) ) < /* translators: %s: Protected post title. */ $prepend = __( 'Protected: %s' ); /** * Filters the text prepended to the post title for protected posts. * * The filter is only applied on the front end. * * @since 2.8.0 * * @param string $prepend Text displayed before the post title. * Default 'Protected: %s'. * @param WP_Post $post Current post object. */ $protected_title_format = apply_filters( 'protected_title_format', $prepend, $post ); $post_title = sprintf( $protected_title_format, $post_title ); >elseif ( isset( $post->post_status ) && 'private' === $post->post_status ) < /* translators: %s: Private post title. */ $prepend = __( 'Private: %s' ); /** * Filters the text prepended to the post title of private posts. * * The filter is only applied on the front end. * * @since 2.8.0 * * @param string $prepend Text displayed before the post title. * Default 'Private: %s'. * @param WP_Post $post Current post object. */ $private_title_format = apply_filters( 'private_title_format', $prepend, $post ); $post_title = sprintf( $private_title_format, $post_title ); >> /** * Filters the post title. * * @since 0.71 * * @param string $post_title The post title. * @param int $post_id The post ID. */ return apply_filters( 'the_title', $post_title, $post_id ); >

Cвязанные функции

title (заголовок)

Записи: посты, страницы, .

  • edit_post_link()
  • get_delete_post_link()
  • get_edit_post_link()
  • get_permalink()
  • get_post_field()
  • get_post_status()
  • get_post_time()
  • get_sample_permalink()
  • get_the_content()
  • get_the_date()
  • get_the_excerpt()
  • get_the_ID()
  • get_the_modified_date()
  • get_the_modified_time()
  • get_the_permalink()
  • get_the_time()
  • get_the_title_rss()
  • has_excerpt()
  • post_password_required()
  • register_post_status()
  • the_author()
  • the_content()
  • the_date()
  • the_excerpt()
  • the_excerpt_rss()
  • the_ID()
  • the_modified_date()
  • the_permalink()
  • the_time()

Как задать метаданныйе (тайтл, кейвордс, и десрипшн) для рубрике без плагина? Думаю, это многим интересно.

Здравствуйте Тимур, я бы хотел узнать есть ли какая нибудь функция, что бы получить всё в обратном порядке ? типа:

$pID = get_post_id($title); echo "ID Поста".$pID;

В ответ:
ID Поста: 1 Устал Вытаскивать через query_posts(). Спасибо и Ещё Вопрос, Возможно ли получить все данные по title:

$post_obj = get_page_by_title( 'привет, мир!', OBJECT, 'post' ); $post_id = $post_obj->ID;
($wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s", $post_title ) ))
echo get_post($review)->post_title;

Он выведется таким, каким хранится в базе данных. Правда при выводе лучше использовать esc_html() от греха подальше, читай очистка (валидация, проверка) входящих/исходящих данных в WordPress. Если нужно, чтобы заголовок выводился по принципам самого WordPress, то лучше использовать вариант

echo get_the_title( $review );

Функция get_the_title() проводит ряд проверок (см. её код), а также задействует ряд фильтров, которыми пользуются как сам движок, так и темы/плагины. Главный из них фильтр the_title. На этот фильтр подвязаны ряд функций по очистки строки, делающий заголовок безопасным при выводе на экран. В описании к фильтру в разделе «Где используется хук в ядре WordPress» можно увидеть все функции, подвязанных на этот хук. На мой взгляд в большинстве случаев лучше использовать данный вариант — и читается понятнее и движок все необходимые очистки делает самостоятельно + остаётся возможность темам/плагинам воздействовать на заголовок при необходимости.

Источник

get_the_title() — возвращает заголовок поста

Функция возвращает заголовок поста, ID которого передан в параметрах, если же ID не указан, возвращается заголовок текущей записи в цикле.

Смотрите мой видеоурок про циклы WordPress.

Если запись защищена паролем, то перед заголовком добавляется «Защищено: », меняется хуком protected_title_format если пост помечен как личное, тогда префикс заголовка будет «Личное: », меняется хуком private_title_format.

Параметры

$post (целое число|WP_Post) ID или объект поста, заголовок которого нужно получить, по умолчанию — текущий пост в цикле.

Очистка

Важный момент, про который вы должны помнить. Вывод функции get_the_title() никак не чистится, кроме использования в некоторых местах в админке (об этом ниже), это означает, что если например в заголовок записи вы закинете JavaScript, например , то этот код будет выполняться везде, где выводится заголовок.

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

echo esc_html( get_the_title() );

либо, если в заголовке могут присутствовать HTML-теги, то:

echo wp_kses_post( get_the_title() );

Пример 1. Как вывести заголовок текущего поста в цикле

При использовании внутри цикла WordPress никакие параметры передавать не нужно:

Пример 2. Как вывести заголовок конкретного поста

echo get_the_title( 531 ); // выводим заголовок поста с ID 531
$specific_post = get_post( 531 ); echo get_the_title( $specific_post );

Пример 3. Создаём хлебные крошки с выводом заголовка страницы

echo '
// получаем заголовок родительского поста $parent_title = get_the_title( $post->post_parent ); // если заголовок не равен заголовку текущего поста, то выводим ссылку на родителя if ( $parent_title != the_title( ' ', ' ', false ) ) { echo ' . esc_url( get_permalink( $post->post_parent ) ) . '" title="' . esc_attr( $parent_title ) . '">' . esc_html( $parent_title ) . ' » '; } // и выводим заголовок текущего поста echo get_the_title(); echo '
'
;

the_title

Этот фильтр-хук – основное отличие между выводом заголовка функцией get_the_title() и выводом напрямую из объекта поста $post->post_title .

На этот фильтр накладываются некоторые функции, а именно:

  • В первую очередь происходит автоматическая замена кавычек и других символов функцией wptexturize().
  • Затем происходит замена символа & на & .
  • После применяется обычная PHP-функция trim() , которая удаляет пробелы по краям заголовка.
  • Ещё применяется функция capital_P_dangit(), исправляющая неправильное написание WordPress (WordPress, wordpress, вротпресс и т д).
  • Также в админке WordPress происходит ещё и очистка функцией esc_html().

Например, ну не знаю, давайте добавим ID поста в конце каждого заголовка в скобочках!

add_filter( 'the_title', 'true_custom_title_stuff', 25, 2 ); function true_custom_title_stuff( $title, $post_id ) { return $title . ' (' . $id . ')'; }

protected_title_format

Позволяет изменить именно шаблон вывода заголовка поста, если запись защищена паролем.

По умолчанию – либо Защищено: %s для русской локализации, либо Protected: %s . %s , как можно догадаться впоследствии заменяется текстом заголовка.

Например можем попробовать сделать такой формат: %s (защищена паролем)

add_filter( 'protected_title_format', 'true_protected_title_format', 25, 2 ); function true_protected_title_format( $format, $post ) { // мы можем использовать тут объект поста $post для каких-то доп. условий return '%s (защищена паролем)'; }

private_title_format

Позволяет изменить именно шаблон вывода заголовка поста, если запись отмечена как «Личное». По умолчанию – либо Личное: %s для русской локализации, либо Private: %s .

Поменяем так же, как и в предыдущем примере, но только для страниц:

add_filter( 'private_title_format', 'true_private_title_format', 25, 2 ); function true_private_title_format( $format, $post ) { if( 'page' === get_post_type( $post ) ) { return '%s (личное)'; } return $format; }

А можно и вовсе избавиться от этих надписей:

add_filter( 'private_title_format', 'true_no_private_title_format' ); function true_no_private_title_format( $format ) { return '%s'; }

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Источник

Оцените статью