Intereting Posts
Пользовательские типы сообщений WordPress прерывают постоянную ссылку на тему переустановки Пользовательский шаблон страницы для боковой панели / виджета Ограничить доступ и отображение для категорий отображать таксономию с помощью идентификатора термина Компоненты жесткого кодирования на клиентских веб-сайтах Как изменить положение метаданных WP по умолчанию? WPDB-> вставка со специальными символами SEO мета-описание и название тега Yoast SEO Когда пользователь создает сообщение (ожидает ответа), отправьте ссылку подтверждения, которая позволяет им публиковать Настройка WordPress Media Manager – окно мультимедиа Почему `add_meta_box` не работает? Как изменить разделитель в заголовке Как реализовать сборщик WordPress Iris в моем плагине на интерфейсе? Главная страница блога работает, но название говорит, что страница не найдена Как создать определенный пункт меню навигации?

Настроить вывод previous_post_link

Я пытаюсь настроить вывод предыдущей ссылки. Я хочу отобразить 2 заголовка (со ссылкой) для предыдущего сообщения, нужно быть настраиваемым текстом, а другим должен быть заголовок сообщения, например:

Read Previous This is Post tile. 

Оба они должны ссылаться на предыдущую должность

Я пытаюсь выполнить код, но он отображает оба заголовка как «Прочитать предыдущие».

 <?php previous_post_link(' <div class="prev-post"> <span class="title1"> <h5>%link</h5> </span> <span class="title2"> <h5>%link</h5> </span> </div> ', __('Read Previous', 'domain') ); ?> 

Solutions Collecting From Web of "Настроить вывод previous_post_link"

Я бы просто отфильтровал previous_post_link и next_post_link . Таким образом, ваш шаблон останется чистым, и вы переместите дополнительную логику в functions.php .

Пример, не проверен:

 add_filter( 'previous_post_link', 'filter_single_post_pagination', 10, 4 ); add_filter( 'next_post_link', 'filter_single_post_pagination', 10, 4 ); function filter_single_post_pagination( $output, $format, $link, $post ) { $title = get_the_title( $post ); $url = get_permalink( $post->ID ); $text = 'Read previous'; $class = 'prev-post'; $rel = 'prev'; if ( 'next_post_link' === current_filter() ) { $text = 'Read next'; $class = 'next-post'; $rel = 'next'; } return "<div class='$class'> <div class='title1'> <h5><a href='$url' rel='$rel'>$text</a></h5> </div> <div class='title2'> <h5><a href='$url' rel='$rel'>$title</a></h5> </div> </div>"; } 

Конечно, это одно и то же. Почему вы думаете, что тот же самый placeholder – %link – будет заменен разными строками? Только один из них вы предоставили?

Функция previous_posts_link() не должна в любом случае принимать несколько заполнителей. Вы не сможете сделать это так, как вы пытаетесь.

Простейшая задача – передать заголовок сообщения в строке:

 previous_post_link(' <div class="prev-post"> <span class="title1"> <h5>%link</h5> </span> <span class="title2"> <h5>'.get_the_title().'</h5> </span> </div>', __('Read Previous', 'domain') ); 

На самом деле, я не вижу фильтр , который позволит вам сделать это любым другим способом.