Intereting Posts
Узнайте, в каком виде архива я Параметр set_transient () переписывает / обновляет переход с тем же ключом? Скопировать специальное значение поля для публикации заголовка Назначить минимальный результат для коротких кодов запросов WooCommerce? Как вы получаете эскизы, чтобы отображаться в редакции администратора? Изменен URL-адрес в https и теперь недоступен для администратора сайта Использование тэга% postname% с пользовательским Permastruct создает 400 ошибок с неправильным запросом с сервера Все 3 ?: Отзывчивое изменение размеров изображений + ширина изображения фактического изображения для небольших изображений + максимальная ширина для всех больших изображений Как создать пользовательские таблицы в WordPress с помощью моего собственного плагина? Как перевести форму контакта 7 с помощью qTranslate? Как изменить содержимое iFrame в блоке администратора избавиться от случайной строки до того, как для пути изображения в wordpress Возможно ли установить BuddyPress с блогами, установленными на нескольких серверах? проверьте, является ли пользователь владельцем текущей страницы Есть ли какой-либо плагин wordpress для загрузки изображений и подписей на несколько страниц один раз

Заполнение страницы содержимым почтовых настраиваемых полей

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

Однако мне также нужно иметь страницу, в которой перечислены все песни в одном месте. Можно ли это сделать без использования плагина? Если да, то как? (А если нет, то какой лучший плагин использовать для этого?)

Благодарю.

Solutions Collecting From Web of "Заполнение страницы содержимым почтовых настраиваемых полей"

Я предлагаю использовать shortcode, так как это позволит вам встраивать список песен в любом месте вашего контента, на любую страницу или на страницу.

ОБНОВЛЕНИЕ: Я немного увлекся и закончил с этим!

function song_list_shortcode( $attrs ) { $r = ( object )wp_parse_args( $attrs, array( 'format' => '%post_title - %link', 'link' => '%song_key_name', 'key' => 'song_key_name' ) ); $query = new WP_Query( array( 'meta_query' => array( array( 'key' => $r->key ) ), 'nopaging' => true, 'update_post_term_cache' => false ) ); if ( !$query->have_posts() ) return ''; $meta_keys = array(); foreach ( array( 'format', 'link' ) as $type ) { // find meta keys if ( !preg_match_all( '#%([a-z0-9_-]+)#', $r->$type, $_keys ) ) continue; $_keys = array_flip( $_keys[1] ); unset( $_keys['post_title'], $_keys['link'] ); // don't want these, not meta keys $meta_keys = $meta_keys + $_keys; // add new keys on to meta key stack } if ( !empty( $meta_keys ) ) $meta_keys = array_keys( $meta_keys ); $output = '<ul class="songs">'; while ( $query->have_posts() ) { $query->the_post(); $format = $r->format; $link = $r->link; if ( !empty( $meta_keys ) ) { // grab all meta data in one swoop (should be cached from query) $meta_data = get_post_custom( $query->post->ID ); // swap out all meta key names with their actual value! foreach ( $meta_keys as $key ) { // using get_post_custom(), all meta data values are arrays if ( isset( $meta_data[ $key ][0] ) ) $value = esc_html( $meta_data[ $key ][0] ); else $value = ''; // meta key not found, so replace with blank list( $format, $link ) = str_replace( "%$key", $value, array( $format, $link ) ); } } // swap out %post_title with actual post title list( $format, $link ) = str_replace( '%post_title', get_the_title(), array( $format, $link ) ); // swap out %link in $format with actual $link $output .= '<li>' . str_replace( '%link', '<a href="' . get_permalink() . '">' . $link . '</a>', $format ) . '</li>'; } wp_reset_postdata(); $output .= '</ul>'; return $output; } add_shortcode( 'song-list', 'song_list_shortcode' ); 

Вы можете использовать его так;

 [song-list format="%post_title - %link - %song_date_meta_key"] // The post title - <a href="/post/">Song Name</a> - Song Date 

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

Также обратите внимание, что %post_title и %link – это два специальных параметра, которые меняются местами с заголовком и якорной ссылкой соответственно.

Вы также можете форматировать содержимое текста ссылки таким же образом;

 [song-list link="Date: %song_date_meta_key"] // Post Title <a href="/post/">Date: Song Date</a> 

Наконец, key атрибут контролирует, какие сообщения извлекаются.

 [song-list key="song_name"] // Retrieves all posts with the meta key 'song_name' 

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