Пример использования: В моих записях WordPress есть ссылки на YouTube. Я хочу, чтобы после публикации записи в WordPress видео с YouTube автоматически появлялось в соответствующей записи на Discourse.
Проблема: Похоже, это не работает, потому что после синхронизации HTML-код записи на Discourse выглядит так:
Видео с YouTube появится успешно, только если я удалю теги <p></p>.
Итак, как мне удалить теги <p></p>? Я надеюсь не удалять теги <p></p> вручную, так как у меня могут быть тысячи записей.
Не уверен, можно ли удалить теги <p></p>напрямую в файле functions.php.
Я следовал вашему руководству по настройке. Вот код в functions.php:
// Добавляет изображение записи к публикации, отправляемой в Discourse.
function my_namespace_publish_format( $input ) {
ob_start();
?>
{excerpt} **<-----можно ли здесь удалить теги p?**
<?php
$output = ob_get_clean();
// Примечание: вызов apply_filters(), который был в исходной функции, удалён.
return $output;
}
add_filter( 'discourse_publish_format_html', 'my_namespace_publish_format' );
Это должно сработать, если видео встроены на вашем сайте WordPress. Возможно, потребуется несколько попыток, чтобы правильно настроить форматирование. Основная проблема, с которой я столкнулся, заключалась в том, что если перед тегом iframe YouTube есть пробелы, Discourse интерпретирует это как код.
Дайте знать, если этот подход не сработает на вашем сайте.
Мне бы хотелось, чтобы при нажатии пользователями кнопки «Показать полный пост» в Discourse для раскрытия поста из WordPress отображались видео с YouTube. Однако я не уверен, что это вообще возможно.
Вывод из вашего первого примера кода выглядит близко к тому, что я ожидал. Думаю, проблема в том, что вам нужно добавить https://www.youtube.com/embed в настройку сайта Discourse «Разрешённые iframe». Это позволит iframe, находящемуся в разметке поста, отображаться как видеоплеер на Discourse.
Попробуйте сейчас опубликовать пост без использования пользовательского шаблона. Возможно, всё, что требовалось сделать, — это добавить https://www.youtube.com/embed в настройку сайта Discourse разрешённые iframe.
Какой редактор вы используете на своём сайте WordPress: старый Classic Editor или новый Block Editor? Также публикуете ли вы в Discourse полный пост или только его отрывок?
Это можно сделать, написав небольшой скрипт для публикации постов из CSV-файла.
Чтобы предотвратить появление ссылки на ваш домен WordPress под заголовком темы, снимите флажок «Добавить рекомендуемые ссылки» на странице настроек публикации WP Discourse. Чтобы удалить рекомендуемую ссылку из уже опубликованных постов, её можно либо скрыть с помощью CSS, либо удалить из базы данных вашего сайта Discourse. В ближайшие пару дней я буду отсутствовать на работе, но смогу помочь вам с этим, когда вернусь в среду.
Если вы можете подождать до среды, я смогу помочь вам с этим. Если вам нужно сделать это раньше, вы можете создать новую тему в нашей категории Support с вопросом о том, как создавать темы через API из CSV-файла.