Я вижу, где можно изменить сам текст ссылки, когда выбрана опция «Ссылка на комментарии без их отображения», но есть ли способ добавить текст/HTML выше или ниже этой ссылки? Что-то вроде фильтра discourse_replies_html, но для изменения содержимого внутри div .wpdc-join-discussion и определения места, куда будет вставлена ссылка «Присоединиться к обсуждению».
Привет, Кайла, сейчас нет фильтра или шаблона для изменения HTML внутри div wpdc-join-discussion. Можешь описать желаемый результат, то есть какой HTML ты хочешь получить в итоге? Я посмотрю, можно ли добавить фильтр, чтобы поддержать твой (и, возможно, других) случай использования.
Привет, Энгус,
Сценарий использования связан с тем же сайтом:
то есть на сайте с классической темой есть приватные комментарии Discourse рядом с публичными комментариями WordPress. Я хотел бы иметь возможность добавить заголовок и текстовое пояснение над ссылкой «Присоединиться к обсуждению» для улучшения контекста и пользовательского опыта. Я могу визуально имитировать это с помощью области виджета по умолчанию темы, которая располагается после входа в запись, и множества CSS-стилей, но с точки зрения структуры документа это не идеально (в данном случае виджет в режиме чтения/просмотра воспринимается как часть статьи, тогда как фактический div .wpdc-join-discussion — нет). Я мог бы создать новую область виджета, расположенную вне слоя статьи, но эта настройка логически должна находиться внутри div .wpdc-join-discussion вместе со ссылкой «Присоединиться к обсуждению».
Хорошо, спасибо. Я рассмотрю возможность поддержки этого варианта использования в следующей версии.
Спасибо за предложение! Я бы предпочел решение открытого типа, подобное discourse_replies_html, чтобы иметь возможность добавлять внутренний «обертывающий» div внутри .wpdc-join-discussion или любые другие элементы, которые могут потребоваться в будущем. Надеюсь, это также упростит разработку плагина (не потребуется новая страница настроек в админ-панели).
@Kayla Скоро выйдет новая версия плагина, и я хочу убедиться, что она учитывает вашу задачу. Я думаю о добавлении фильтра wpdc_join_discussion_link_html здесь
$link_html = '<div class="wpdc-join-discussion"><a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a></div>';
$link_html = apply_filters( 'wpdc_join_discussion_link_html', $link_html, $comments_count, $post_id );
return $link_html;
Это будет выполнять ту же роль, что и фильтр discourse_replies_html, но для HTML ссылки.
Подойдёт ли вам такой вариант?
Да, я так думаю. Просто чтобы я был уверен, поскольку мой уровень знаний PHP ограничивается тем, что я беру шаблон или пример и работаю с ним, я могу использовать этот фильтр следующим образом?
function custom_discussion_link( $input ) {
ob_start();
?>
<div class="wpdc-join-discussion">
<div class="custom-wrapper-div">
<h3>Заголовок</h3>
<p>Пояснение/контекст, blah blah.</p>
<?php echo '<a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a>'; ?>
</div>
</div>
<?php
$link_html = ob_get_clean();
return $link_html;
}
add_filter( 'wpdc_join_discussion_link_html', 'custom_discussion_link' );
Надеюсь, я не слишком далеко ушел от истины. ![]()
Хорошо, похоже, вам нужно убедиться, что переменные, которые вы подставляете, присутствуют, что логично для этого фильтра, то есть:
apply_filters( 'wpdc_join_discussion_link_html', $link_html, $discourse_permalink, $new_tab, $link_text )
Использовать его вы сможете следующим образом (обратите внимание на количество аргументов):
function custom_discussion_link( $link_html, $discourse_permalink, $new_tab, $link_text) {
ob_start();
?>
<div class="wpdc-join-discussion">
<div class="custom-wrapper-div">
<h3>Заголовок</h3>
<p>Пояснение/контекст и так далее.</p>
<?php echo '<a class="wpdc-join-discussion-link" href="' . esc_url_raw( $discourse_permalink ) . '"' . $new_tab . '>' . esc_html( $link_text ) . '</a>'; ?>
</div>
</div>
<?php
$link_html = ob_get_clean();
return $link_html;
}
add_filter( 'wpdc_join_discussion_link_html', 'custom_discussion_link', 10, 4 );
Этот новый фильтр появится в следующей версии. Из-за некоторых логистических моментов выпуск немного задержится, поэтому следующая версия выйдет в начале октября.
Огромное спасибо! Буду ждать следующего выпуска. ![]()