Автоматическое создание коротких кодов с пользовательскими полями

Это в основном проблема php, поскольку я довольно новичок в этом и не могу понять, как кодировать вещи так, как я хочу. В основном я пытаюсь извлечь информацию из пользовательских полей (ссылка на сетку) и заголовков сообщений и т. Д., Чтобы затем записать (длинный) короткий код. Этот короткий код создает карту (OS OpenSpace Maps Plugin)

В настоящее время я успешно получил код для печати (эхо) короткого кода, а затем мне нужно немного его отредактировать, удалить пробелы и несколько устаревших символов, а затем вручную вставить это обратно в шаблон с помощью 'do_shortcode'

Правильный формат короткого кода:

[osmap markers="HU123456;<a href='http://example.com'>Link 1</a>|HU123456;<a href='http://example.com'>Link 2...etc"] 

Мой текущий код для печати на экране:

 <?php echo '[osmap width="800" height="600" markers="'; $args=array( 'post_type' => 'sport-crag', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php echo get_post_meta($post->ID,'gridref', true);?>;<a href=\'<?php the_permalink() ?>\'><?php the_title(); ?></a>| <?php endwhile; } wp_reset_query(); // Restore global post data stomped by the_post(). echo '"]'; ?> 

Я действительно хочу сделать все это внутри функции do_shortcode. Есть еще несколько проблем с моим решением до сих пор, что я не могу понять, как сортировать.

  1. В ссылках на сетку часто есть пробелы в них (например, HU 123 456), но это не будет работать в коротком коде, чтобы они нуждались в извлечении пробелов (HU123456).

  2. Мой код ставит окончательный '|' после последней записи, которую необходимо удалить. Не уверен, как это сделать, но как часть цикла while.

Любая помощь, чтобы получить этот автоматический процесс, все внутри php, была бы высоко оценена! На данный момент это занимает всего 5 минут, но проблема в том, что если добавляются какие-либо другие сообщения, процесс необходимо переделать до того, как они появятся на карте, так что это будет раздражать. У меня также есть 4 карты для разных типов сообщений, поэтому это будет очень раздражать!

Solutions Collecting From Web of "Автоматическое создание коротких кодов с пользовательскими полями"