Я написал шорткод, который отображал профили авторов на основе идентификатора. Например, [user-profile id = "1"] будет отображать блок профиля, определенный в user-profile.php для автора 1. Это сработало (даже с несколькими экземплярами на одной странице).
function user_profile( $atts, $content = null ) {
extract(shortcode_atts(array('id' => ''), $atts));
include 'user-profile.php';
}
... за исключением того, что вывод шорткода обнаруживался перед другим содержимым записи независимо от его места в коде. Чтобы решить эту проблему, я добавил это исправление:
function user_profile( $atts, $content = null ) {
extract(shortcode_atts(array('id' => ''), $atts));
function get_user_profile() { include 'user-profile.php'; }
ob_start();
get_user_profile();
$output_string = ob_get_contents();
ob_end_clean();
return $output_string;
}
... который работал для решения проблемы позиционирования, но сломал несколько экземпляров шорткода. [user-profile id = "1"] работает, но [user-profile id = "1"] [user-profile id = "2"] ломает его - страница просто перестает загружаться в этот момент.
Как я могу изменить это, чтобы разрешить несколько экземпляров?