WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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

Есть пользовательский тип записи "Сотрудники".

  1. Что необходимо сделать, чтобы при сохранении данного типа записи к нему автоматически создавался шоткод следующего вида [worker id=123].
  2. Как создать отдельное поле для отображения созданного шоткода в таблице записей данного типа?
  3. Как будет выглядеть функция-обработчик, которая находит данный шоткод в тексте и преобразовывает в необходимый формат (например, заголовок, фотография и ссылка на страницу просмотра информации о данном сотруднике)?

Буду благодарен за любую информацию, проливающую свет на данную проблему. Можно и информацию о плагинах, которые могут рреализовывать данный функционал, но кодовое решение все же интереснее. smile

0
Гость
7.1 год назад
  • 1

    Что необходимо сделать, чтобы при сохранении данного типа записи к нему автоматически создавался шоткод следующего вида [worker id = 123].

    в файл function.php написать следующее

    add_shortcode('worker', function ($args) {
    	$args = shortcode_atts(array(
    		'id' => 0,
    	), $args);
    	$pst = get_post($args['id']);
    	ob_start();
    	?>
    	<div>
    		<p>Имя: <?php echo $pst->ID; ?></p>
    		<p>Биография:<?php echo apply_filters('the_content', $pst->post_content); ?></p>
    	</div>
    	<?php
    	$return = ob_get_contents();
    	ob_end_clean();
    	return $return;
    }); 

    Детальнее вот https://wp-kama.ru/function/add_shortcode

    Как создать отдельное поле для отображения созданного шоткода в таблице записей данного типа?

    чуть позжа сейчас времени нету это расписывать

    Как будет выглядеть функция-обработчик, которая находит данный шоткод в тексте и преобразовывает в необходимый формат (например, заголовок, фотография и ссылка на страницу просмотра информации о данном сотруднике)?

    Автоматически, если страница отображается через the_content() ну или apply_filters('the_content', $pst->post_content) или do_shortcode()

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация