WordPress как на ладони
wordpress jino

the_meta() WP 1.2.0

Выводит произвольные поля записи (мета данные расположенные в таблице wp_postmeta). Поля выводятся в списке <li>

Функция должна использоваться внутри Цикла WordPress или в файле single.php - там где есть данные записи.

Произвольные поля (названия полей) начинающиеся с нижнего подчеркивания (_) игнорируются (в списке не пападают). Такая маркировка используются WordPress для системных метаполей.

Работает на основе: get_post_custom_keys()
✈ 1 раз = 0.001464с = очень медленно | 50000 раз = 2.87с = быстро PHP 7.1.2, WP 4.7.3
Хуки из функции:

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

<?php the_meta(); ?>

Примеры

#1. Выведем метаданные поста

Для этого разместим следующий код в файле single.php после тега шаблона (функции) the_content():

<p>Мета информация о текущем посте:</p>
<?php the_meta(); ?>

Этот код выведет следующие

<p>Мета информация о текущем посте:</p>
<ul class='post-meta'>
	<li><span class='post-meta-key'>название ключа:</span> значение поля</li>
</ul>

Код the meta: wp-includes/post-template.php WP 4.9

<?php
function the_meta() {
	if ( $keys = get_post_custom_keys() ) {
		echo "<ul class='post-meta'>\n";
		foreach ( (array) $keys as $key ) {
			$keyt = trim( $key );
			if ( is_protected_meta( $keyt, 'post' ) ) {
				continue;
			}

			$values = array_map( 'trim', get_post_custom_values( $key ) );
			$value = implode( $values, ', ' );

			$html = sprintf( "<li><span class='post-meta-key'>%s</span> %s</li>\n",
				/* translators: %s: Post custom field name */
				sprintf( _x( '%s:', 'Post custom field name' ), $key ),
				$value
			);

			/**
			 * Filters the HTML output of the li element in the post custom fields list.
			 *
			 * @since 2.2.0
			 *
			 * @param string $html  The HTML output for the li element.
			 * @param string $key   Meta key.
			 * @param string $value Meta value.
			 */
			echo apply_filters( 'the_meta_key', $html, $key, $value );
		}
		echo "</ul>\n";
	}
}

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

Из метки: metadata (метаданные)

Еще из раздела: Произвольные поля (postmeta)

the_meta 7 комментариев
  • Ольга

    Здравствуйте! Пользуюсь версией вордпресс 4.1. Создала произвольное поле к посту, присвоила ему значение, прописала отображение его в файле page.php после

    <?php the_content(); ?>
    <?php the_meta(); ?>

    Ничего не отображается. Понять не могу почему. Хотя вроде бы на прежней версии пробовала - получалось без проблем.

    Ответить2.8 года назад #
  • Дамир

    Привет а этот фильтр:

    echo apply_filters( 'the_meta_key', "$key: $value\n", $key, $value );

    куда нужно вставить, в файл functions.php или шаблон темы?

    Допустим мне нужно чтобы
    выводила без $key и без li

    Ответить2.3 года назад #
    • campusboy1946 cайт: www.youtube.com/c/wpplus

      Привет. Да, лучше всего в functions.php, потому что там он не затеряется. Да и инициализируется он раньше. Хотя наврядли будет ошибкой, если поставить хук сразу перед тем, как надо будет вывести меты.

      Ответить2.3 года назад #
  • Дима

    Добрый день!
    Добавил фильтр в functions.php но он не взаимодействует с the_meta();

    echo apply_filters( 'the_meta_key', "<span class='post-meta-key'>$key:</span> $value\n", $key, $value );

    Он просто выводится в начале странице как пустой список.

    Не подскажите в чем может быть дело?

    Ответить1.9 года назад #
    • Kama4660

      Вы неправильно используете фильтр. Ознакомьтесь с функцией add_filter()...

      add_filter('the_meta_key', 'my_meta', 10, 2 );
      function my_meta( $key, $value ){
      	$out = "<span class='post-meta-key'>$key:</span> $value\n";
      	return $out;
      }
      1
      Ответить1.9 года назад #

Здравствуйте, !

Ваш комментарий