Intereting Posts
Вход в текстовый файл виджетов отформатирован Штрих-код видеоролика внутри вкладки shorcode НЕ работает Использование tax_query отменяет мой аргумент post_type в пользовательском WP_Query Разметка шаблона страницы для пользовательских типов сообщений Customiser `active_callback` не работает над управлением с помощью метода postMessage. Обновлять контент на лету Как запросить в течение недели с помощью key => value Обозначение аргумента WP_Query? Получить ссылку на страницу, выбранную с помощью поля выбора в пользовательской странице администратора Обратите внимание, что при создании числовой разбивки на пользовательский запрос Отображение видео на главной странице через настраиваемое поле внутри виджета php Мой редактор WordPress удаляет все символы после emoji – как я могу это исправить? Пользовательское правило перезаписи не работает Как лучше отображать уведомления на интерфейсе с использованием исключенных исключений в качестве примера Как сделать локальный кеш изображений mshots как получить значение времени, оставшегося для переходного процесса

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

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

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

Благодарю.

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' 

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