добавить к тегу p класс css
-
Всем привет!
Стандартно WP выводит запить разбивая её на абзацы с помощью тега
<p>
. Мне хотелось бы сделать что бы это было<p class="contentText">
так же хотелось всем тегам<a>
в записи тоже добавить класс.
Подскажите пожалуйста где и как это можно реализовать.
-
а зачем?
можно самым обычным прегреплейсом пройтись по the_content и заменить одно на другое. но зачем?А не могли бы привести пример прегреплейса?
function pclass($content) { $content=str_replace('<p>', '<p class="contentText">', $content); return $content; } add_filter('the_content', 'pclass', 9999);
Большая благодарность!!! Но абзацы WP всё равно облачает в голый
<p>
(((
Мои знания в php очень слабые, последний раз пользовался php более 10 лет назад.Подскажите а что за параметр 9999?
А добавить класс к тегу a надо добавить ещё одну строку:function pclass($content) { $content=str_replace('<p>', '<p class="contentText">', $content); $content=str_replace('<a>', '<a class="link">', $content); return $content; } add_filter('the_content', 'pclass', 9999);
нет, никакого голого <p> быть не может.
я код проверил — он работает.
параметр 9999 это приоритет фильтров — чтобы он запускался уже после всех остальных фильтров движка.а с ссылками вы неправильно сделали, нет там закрывающего тега. надо так:
$content=str_replace('<a', '<a class="link"', $content);
То, что Вы правы нет сомнений.
Давайте попробуем вместе найти мою ошибку. Значит ситуация у меня следующая. Делаю тему с нуля. Есть простой html шаблон, простого 15 страничного сайта. Основной вывод записей я уже настроил (обычным вордпрессовым лупом), все стили работают. Вот осталась только эта мелочь.
Мои действия я создал файл functions.php в папке моей темы, добавил сайдбары как требует тема, они работают. А вот последующие записи не работают. Запись реально облачена исключительно в
<p>
<?php /** * Подключаем левый и правй сайдбар **/ if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '', 'after_widget' => '', 'before_title' => '<h3>', 'after_title' => '</h3>', )); register_sidebar( array( 'id' => 'left-sidebar', 'name' => 'Левый сайд бар', 'description' => __( 'Это меню сайта' ), ) ); register_sidebar( array( 'id' => 'right-sidebar', 'name' => 'Правый сайд бар', 'description' => __( 'Сайдбар для сопутсвующеё информации' ), ) ); /** * Изменяем ссылку читать далее. Пока не работает ((( **/ function new_excerpt_more($more) { global $post; return '<a href="'. get_permalink($post->ID) . '">Читать дальше......</a>'; } add_filter('excerpt_more', 'new_excerpt_more'); /** * Изменяем тег p **/ function pclass($content) { $content=str_replace('<p>', '<p class="contentText">', $content); return $content; } add_filter('the_content', 'pclass', 9999); ?>
я не знаю, почему у вас не работает.
проверил на трех темах — везде работает.
приведите тут содержимое циклов для вывода контента записей.Да я сам уже потусторонние силы подозреваю )))
Цикл брал из кодекса:
<!-- Start the Loop. --> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div id="topic"><span id="topicTitle"><?php the_title(); ?></span></div> <p class="contentText"><?php the_time( 'j.m.Y' ); ?> <?php the_excerpt(); ?></p> <p class="contentText"><a href="<?php the_permalink(); ?>" class="link">Читать далее</a></p> <!-- Остановить Цикл (но есть ключевое слово "else:" - смотрите далее). --> <?php endwhile; else: ?> <!-- В первом "if" проверяется существуют ли каки-либо записи для --> <!-- вывода. Эта часть "else", говорит что делать, если записей не нашлось.--> <p>Новостей пока нет.</p> <!-- ДЕЙСТВИТЕЛЬНО остановить Цикл --> <?php endif; ?>
и где у вас the_content?
я вижу только the_excerpt, который выводит анонсы, в которых вся разметка удаляется.Flector, прости криворукого и желаю большой кармы за терпение меняподобных!
Я думал что одна и та же ф-ция генерирует данный контент.
А можно, в таком случае, для ф-ции the_excerpt сделать тоже самое с тегом<p>
?нет, нельзя.
в цитатах разметка удаляется, в том числе и теги параграфов.
за исключением случаев, когда цитата заполнена вручную.вы вместо записей цитаты заполняете что ли?
меняйте the_excerpt на the_content(‘читать дальше’);Flector, так пашет, ещё бы запись можно было укоротить как цитату.
Я вывожу на главной цитаты, the_excerpt удаляет промежуточные теги параграфов, но облачает всю цитату в просто <p>, который по задумке дизайнера оказался без каких либо отступов и поэтому текст в цитате прилипает к граням. Для оформления контента: как полного текста, так и цитаты в дизайне используется <p class=»contentText»>
Вот суть проблемы.
function pclass($content) { $content=str_replace('<p>', '<p class="contentText">', $content); $content=str_replace('<a>', '<a class="link">', $content); return $content; } add_filter('the_excerpt', 'pclass', 9999);
Flector, то что надо!
Большой респект!
- Тема «добавить к тегу p класс css» закрыта для новых ответов.