Вопрос или проблема
Я создаю пользовательский тип записи (features) в своей теме с помощью Advanced Custom Field. Я хочу знать, как я могу создать шорткод для моего пользовательского типа записи, чтобы я мог просто использовать шорткод этого пользовательского типа записи на любой странице для отображения информации, которую я добавил в свой пользовательский тип записи (features).
Для шорткода вы можете использовать функцию add_shortcode в файле functions.php вашей темы WordPress.
function shortcode_video_slider()
{
?>
<div class="cr-carousel">
<?php
$loop = new WP_Query( array( 'post_type' => 'video_slider') ); // Замените video_slider на имя вашей пользовательской записи.
if ( $loop->have_posts() ) :
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div>
<?php if ( has_post_thumbnail() ) { ?>
<div class="pimage">
<a href="https://wordpress.stackexchange.com/questions/345811/<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
</div>
<?php } ?>
<div class="cr-slider-content">
<div class="ptitle">
<?php
$terms = get_the_terms( get_the_ID() , 'video_slider_tex' );
// Проходим по каждому элементу, так как это массив
if ( $terms != null ){
foreach( $terms as $term ) {
?>
<h2><a href="https://wordpress.stackexchange.com/questions/345811/<?php the_permalink(); ?>"><?php echo $term->name; ?></a></h2>
<?php
unset($term); } }?>
</div>
<div class="cr-video-link">
<?php
$cr_video_link = get_post_meta( get_the_ID(), 'video_link', true );
echo '<a target="_blank" href="' . $cr_video_link . '" class="wplightbox" title="WordPress Carousel Plugin" data-width="1024" data-height="576">YouTube Lightbox</a>';
?>
</div>
<div class="cr-video-cat">
<div class="cr-slide-category"><span> Для</span> <a href="https://wordpress.stackexchange.com/questions/345811/<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a></div>
</div>
</div>
</div>
<?php endwhile;
if ( $loop->max_num_pages > 1 ) : ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Предыдущий', 'domain' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Следующий <span class="meta-nav">→</span>', 'domain' ) ); ?></div>
</div>
<?php endif;
endif;
wp_reset_postdata();
?>
</div>
<?php
}
add_shortcode('custom_video_slider','shortcode_video_slider');
Теперь вы можете использовать [custom_video_slider]
где угодно, чтобы отобразить записи.
Ответ или решение
Как создать шорткоды для пользовательского типа записей в WordPress
Создание шорткодов для пользовательских типов записей в WordPress предоставляет возможность легко интегрировать динамический контент на страницы и в записи вашего сайта. В этом руководстве я расскажу, как создать шорткод для вашего пользовательского типа записей «функции» (features), который вы добавили с помощью плагина Advanced Custom Fields (ACF).
Шаг 1: Определение пользовательского типа записи
Прежде всего, убедитесь, что вы создали свой пользовательский тип записи (CPT) «features». Предполагается, что вы уже настроили этот тип записи и добавили к нему необходимые мета-поля с помощью ACF.
Шаг 2: Написание функции шорткода
Для создания шорткода мы используем функцию add_shortcode
, которую нужно определить в файле functions.php
вашей темы. Ниже приведен пример кода, который вы можете использовать для создания шорткода, отображающего ваш пользовательский тип записи «features».
function shortcode_features_display() {
ob_start(); // Начинаем буферизацию вывода
?>
<div class="features-list">
<?php
$query_args = array(
'post_type' => 'features', // Укажите свой пользовательский тип записи
'posts_per_page' => -1, // Количество записей, установите -1 для отображения всех
);
$loop = new WP_Query($query_args);
if ($loop->have_posts()) :
while ($loop->have_posts()) : $loop->the_post(); ?>
<div class="feature-item">
<?php if (has_post_thumbnail()) : ?>
<div class="feature-image">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
</div>
<?php endif; ?>
<div class="feature-content">
<h2><?php the_title(); ?></h2>
<div class="feature-description"><?php the_content(); ?></div>
<?php
// Получаем мета-данные, добавленные с помощью ACF
$custom_field_value = get_field('your_custom_field_name'); // Замените на имя вашего поля
if ($custom_field_value) : ?>
<div class="feature-meta"><?php echo esc_html($custom_field_value); ?></div>
<?php endif; ?>
</div>
</div>
<?php endwhile;
else :
echo '<p>Нет доступных функций.</p>';
endif;
wp_reset_postdata(); // Сбрасываем посты
?>
</div>
<?php
return ob_get_clean(); // Возвращаем буферизированный вывод
}
add_shortcode('features_display', 'shortcode_features_display');
Шаг 3: Использование шорткода на странице
Теперь, когда шорткод создан, вы можете использовать его в любом месте вашего сайта: вставьте [features_display]
в контент записи или страницы. Это будет отображать все ваши записи из пользовательского типа «features», включая их изображения, заголовки и содержимое.
Заключение
Создание шорткодов для пользовательских типов записей – это мощный способ повысить гибкость и функциональность вашего сайта WordPress. Используя вышеописанные шаги, вы сможете легко интегрировать динамический контент без необходимости в глубоком техническом знании.
Дополнительные советы по SEO
- Оптимизируйте заголовки и мета-описания: Используйте ключевые слова, связанные с вашим контентом, чтобы улучшить видимость в поисковых системах.
- Соблюдайте структуру URL: Убедитесь, что ссылки на ваши пользовательские типы записей используют «человекочитаемые» форматы.
- Используйте дополнительные плагины: Рассмотрите возможность использования SEO-плагинов, таких как Yoast SEO, для улучшения общей видимости вашего сайта.
Создание эффективного и краткого контента с помощью шорткодов значительно упрощает управление вашим веб-сайтом, повышая его функциональность и привлекательность.