WordPress, как ведущая CMS, предлагает множество функций для оптимизации веб-разработки. Среди них, the_permalink() и get_permalink() являются ключевыми для работы с постоянными ссылками. Разберемся в различии между этими функциями и как их правильно использовать. Приведу реальные примеры кода как стандартного и нестандартного использования функций. Также будут интересные примеры кода с объяснением, которые помогут навсегда разобраться где и как использовать the и get pormalink.
Оглавление:
Функция the_permalink() что это и для чего нужна
Функция the_permalink() в WordPress — это основная функция, используемая для вывода URL текущего поста или страницы. Она автоматически выводит постоянную ссылку (permalink) на пост или страницу, в контексте которой она вызывается. Эта функция особенно полезна в шаблонах, где требуется создать прямую ссылку на пост, например, в списке последних постов или на странице архива.
<?php the_permalink(); ?>
Базовый пример the_permalink() использования в коде:
<a href="<?php the_permalink(); ?>">Читать далее</a>
В этом примере функция the_permalink() вставляет URL текущего поста непосредственно в атрибут href ссылки, создавая таким образом прямую ссылку на этот пост.
Пример функции the_permalink() в стандартном цикле WordPress:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
echo '<a href="' . the_permalink() . '">Читать далее</a>';
}
}
- Эта функция непосредственно выводит URL текущего поста.
- Используется внутри цикла WordPress.
- Не требует дополнительных аргументов.
Пример реального применения функции the_permalink() в коде
Пример 1
function custom_posts_list() {
$args = array('numberposts' => 5);
$latest_posts = get_posts($args);
foreach ($latest_posts as $post) {
setup_postdata($post);
echo '<li><a href="' . the_permalink() . '">' . get_the_title() . '</a> - ' . get_the_excerpt() . '</li>';
}
wp_reset_postdata();
}
Этот код извлекает и отображает список из пяти последних постов вместе с их заголовками и краткими описаниями, для отображения последних новостей или статей.
Пример 2
Рассмотрим интересный пример, где функция the_permalink() используется нестандартным образом, в контексте сложного и насыщенного цикла WordPress. В этом примере мы создадим функционал для отображения рекомендуемых постов, где the_permalink() будет использоваться для создания не только ссылок на посты, но и для генерации уникальных атрибутов данных, которые могут быть использованы для дополнительной логики на стороне клиента (например, для отслеживания кликов или для аналитики).
function display_recommended_posts() {
$args = array(
'posts_per_page' => 4, // Лимит постов
'orderby' => 'rand', // Случайный порядок
'post__not_in' => array(get_the_ID()) // Исключить текущий пост
);
$recommended_posts = new WP_Query($args);
if ($recommended_posts->have_posts()) {
echo '<div class="recommended-posts">';
while ($recommended_posts->have_posts()) {
$recommended_posts->the_post();
echo '<div class="post">';
echo '<h3><a href="' . esc_url(get_permalink()) . '" data-post-id="' . get_the_ID() . '">' . get_the_title() . '</a></h3>';
the_excerpt();
echo '</div>';
}
echo '</div>';
}
wp_reset_postdata();
}
В это примере кода мы создаем разметку для каждого поста с заголовком и кратким описанием. И тут мы очень интересно используем функцию the_permalink(): она вставляется в атрибут href ссылки, а get_the_ID() добавляется в атрибут data-post-id. Это позволяет не только перейти к посту, но и предоставляет уникальный идентификатор для каждой ссылки, который мы можем использовать в скриптах для отслеживания кликов или аналитики.
Функция get_permalink() что это и для чего нужна
get_permalink() — это функция в WordPress, используемая для получения URL (постоянной ссылки) конкретного поста или страницы. В отличие от the_permalink(), которая непосредственно выводит URL в шаблон, get_permalink() возвращает URL в виде строки. Это позволяет сохранить постоянную ссылку в переменной для дальнейшего использования, например, для создания ссылок в пользовательском коде или для передачи URL в качестве параметра в другие функции.
<?php get_permalink(); ?>
Базовый пример get_permalink() использования в коде:
$post_id = 42; // ID поста
$post_url = get_permalink($post_id);
echo '<a href="' . $post_url . '">Посмотреть пост</a>';
- Возвращает URL поста как строку.
- Может быть использована вне цикла WordPress.
- Принимает необязательный аргумент ID поста.
Пример реального применения функции get_permalink() в коде
Пример 1
function generate_post_qr_code() {
$post_url = get_permalink();
echo '<img src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=' . urlencode($post_url) . '">';
}
Этот код генерирует QR-код для URL текущего поста с помощью подключенного внешнего сервиса по API, затем создает изображение в виде QR кода, которое можно вставить на страницу или распечатать.
Пример 2
function custom_social_share_buttons() {
$post_url = get_permalink();
echo '<a href="https://twitter.com/share?url=' . urlencode($post_url) . '">Поделиться в Twitter</a>';
echo '<a href="https://www.facebook.com/sharer.php?u=' . urlencode($post_url) . '">Поделиться в Facebook</a>';
}
Данный использование функции создает кнопки поделиться постом в социальных сетях. Получаем URL текущего поста или страницы, создаем кнопки, выводим это все на текущей странице где была вызвана функция. При клике по кнопке — мы делимся информацией с данной страницы или поста в соц сети.
В чем разница между the_permalink() и get_permalink() ?
Когда использовать the_permalink() ?
Идеально подходит для шаблонов, где требуется прямой вывод URL текущего поста.
Пример: создание цикла со списком постов где выводим ссылки на их полные версии.
Когда использовать get_permalink() ?
Подходит для сценариев, где нужно присвоить URL переменной или передать его как параметр.
Пример: Создание пользовательских ссылок вне стандартного цикла WordPress.
Финалочка
Выбор между the_permalink() и get_permalink() зависит от контекста использования в вашем проекте WordPress. Обе функции очень разные и предназначены под разные задачи. Постарался наглядно объяснить разницу между ними и действительно реальные примеры того, как они используются в повседневных задачах.
Для отправки комментария вам необходимо авторизоваться.