удаляют <p> теги от the_content

У меня есть почтовый формат изображения, и я столкнулся с проблемой, когда изображение обернуто с помощью <p> тег. Я хочу избавиться от этого тега (в частности, от версии single.php) этих типов сообщений.

Как я могу получить внутри форматирования в теме и удалить теги <p> или создать любой формат, который я хочу для вывода такого типа сообщений, не затрагивая должности другого почтового формата?

6 голосов | спросил Smittles 9 AM00000020000004531 2013, 02:15:45

10 ответов


8

Wordpress автоматически рекламирует теги <p>. Таким образом, он отображается при загрузке содержимого. Это с фильтром wpautop. Поэтому мы удалим этот фильтр только для типа сообщений image. Вы можете управлять этим, добавив следующий код в файл functions.php.

// Add the filter to manage the p tags
add_filter( 'the_content', 'wti_remove_autop_for_image', 0 );

function wti_remove_autop_for_image( $content )
{
     global $post;

     // Check for single page and image post type and remove
     if ( is_single() && $post->post_type == 'image' )
          remove_filter('the_content', 'wpautop');

     return $content;
}

is_single() проверяет, отображается ли одна запись.

ответил Chittaranjan 7 SatEurope/Moscow2013-12-07T22:18:59+04:00Europe/Moscow12bEurope/MoscowSat, 07 Dec 2013 22:18:59 +0400 2013, 22:18:59
4

Если этот тип сообщения называется «образ», вы можете создать один шаблон для обработки отображения только типа сообщения изображения.

Просто скопируйте файл 'single.php' и переименуйте копию 'single-image.php'. Теперь вы можете контролировать только сообщения изображений. Чтобы отключить теги, мне нравится использовать функцию strip_tags(). Если вы печатаете содержимое сообщения с помощью the_content(), он уже применяет фильтр содержимого, обертывая строки в <p>.

Вот пример того, как вы можете получить содержимое своего изображения без тегов:

$imageContent = get_the_content();
$stripped = strip_tags($imageContent, '<p> <a>'); //replace <p> and <a> with whatever tags you want to keep after the strip
echo $stripped;

Надеюсь, это поможет!

ответил CreMedian 9 AM00000020000003831 2013, 02:29:38
2

Просто добавьте ниже строку кода в файл functions.php вашей темы

Для содержимого:

remove_filter( 'the_content', 'wpautop' );

Для отрывка

remove_filter( 'the_excerpt', 'wpautop' );

узнать больше: https://codex.wordpress.org/Function_Reference/wpautop

ответил Saiful Islam 12 Jam1000000amThu, 12 Jan 2017 10:52:20 +030017 2017, 10:52:20
0

Вы можете использовать get_the_content() вместо the_content(). Это может решить вашу проблему, и другое решение будет таким же, как описано в @Chittaranjan

ответил Subhojit Mukherjee 5 J0000006Europe/Moscow 2015, 14:27:35
0

Чтобы удалить тэг p из содержимого, вы можете использовать приведенный ниже код

<?php remove_filter ('the_content', 'wpautop'); ?>
ответил Rahul S 5 J0000006Europe/Moscow 2015, 14:34:55
0

Другой способ закодировать его на основе решения @chittaranjan

add_filter( 'the_content', 'remove_autop_for_image', 0 );

function remove_autop_for_image( $content ) {
     global $post;

     if ( is_singular('image'))
          remove_filter('the_content', 'wpautop');

     return $content;
}
ответил Brad Dalton 5 J0000006Europe/Moscow 2015, 16:41:11
0

введите этот код в «style.css» в «Активная дочерняя тема»

p:empty {
  display: none;
}
ответил Parthavi Patel 12 Jam1000000amThu, 12 Jan 2017 09:57:46 +030017 2017, 09:57:46
0

Вы можете использовать определенный класс post для single-post или single-format-standard и скрыть его, как вам требуется только на одной странице, чтобы это не было конфликтом для других частей веб-сайта.

Пример кода CSS *

.single-post .entry-content p:empty { display: none; }

Пример CSS-кода для конкретного почтового формата Изображение

.single-format-image .entry-content p:empty { display: none; }
ответил Maqk 12 Jam1000000amThu, 12 Jan 2017 10:23:52 +030017 2017, 10:23:52
0

, если вы хотите удалить из определенной страницы или сообщения, вы можете вызвать это

<?php remove_filter ('the_content', 'wpautop'); the_content(); ?>
ответил Muddasir 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 26 Sep 2017 22:55:55 +0300 2017, 22:55:55
-1

хотя ответ был получен, я отправляю ниже для дополнительной справки.

remove_filter ('the_exceprt', 'wpautop');

remove_filter ('the_content', 'wpautop');

remove_filter('term_description','wpautop');

Источник

ответил Shreyo Gi 27 WedEurope/Moscow2017-12-27T12:49:37+03:00Europe/Moscow12bEurope/MoscowWed, 27 Dec 2017 12:49:37 +0300 2017, 12:49:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132