Как в вордпресс убрать понравился этот пост
Перейти к содержимому

Как в вордпресс убрать понравился этот пост

  • автор:

Как отключить ссылку на пост wordpress?

Есть вот такой Шаблон.
В моем случае я сделал из записей фотогалерею, т.е каждая фотография это отдельная запись.
Мне нужно отключить переход на саму запись когда кликаешь на фото,как это сделать? (что бы не открывался пост или оригинал картинки)
Т.е что бы при нажатии на фото ничего не происходило, ни перехода на пост , ни на оригинал фото.

  • Вопрос задан более трёх лет назад
  • 1524 просмотра

Комментировать

Решения вопроса 1

agmegadeth

Андрей Гончаров @agmegadeth

Веб-разработчик в дизайн студии

Вам нужно найти шаблон страницы, где выводятся посты. Если это главная — то возможно home.php, если список постов категории, то category.php в корне скачанной темы. Открыть редактором кода или блокнотом, найти место, где выводится изображение или блок, обернутый в ссылку на детальную страницу поста, и удалить эту ссылку. Ссылка эта будет выглядеть как-то так:

Ответ написан более трёх лет назад

Как удалить «Отрывок» в WordPress?

Так выглядит статья в редакторе. Обращаю внимание, что поле «Отрывок» пустое:
5e8bba95b36a9702252890.png
Так выглядит статья на сайте после публикации.
5e8bba9e9f336551792237.png

5e8bbb30849ea688055194.png

После небольших танцев с бубном получилось сделать только так (с троеточием):

Как можно отключить троеточие?

Заранее спасибо за помощь!

  • Вопрос задан более трёх лет назад
  • 465 просмотров

get_post_class() │ WP 2.7.0

Итоговый массив классов пропускается через фильтр post_class , используйте его, когда нужно изменить выводимые классы в зависимости от разных условий.

Чтобы сразу вывести классы на экран в виде строки, используйте post_class()

Где и какие классы добавляются
  • hentry , post- , type- , status- , — выводятся для всех записей. Части в скобках заменяются на соответствующую переменную текущей записи;
    НЕ выводится в админке.
  • sticky — если это прилепленный пост, выводится только на странице is_home(). В админке выводится status-sticky ;
  • has-post-thumbnail — если у записи есть миниатюра;
  • format- — если включена поддержка форматов. Если формат не указан то выведет format-standart .
  • post-password-required — для записей защищенных паролем.
  • — — если запись принадлежит таксономии. $taxonomy замениться названим таксы, а $slug названием термина (элемента таксономии). Например: category-blog ;
    Исключением тут является таксономия post_tag для нее префикс будет tag- , а не post_tag- . Например: tag-novosti .

Основа для: post_class()
1 раз — 0.00616 сек (очень медленно) | 50000 раз — 10.72 сек (медленно) | PHP 7.0.2, WP 4.4.1

Хуки из функции

Возвращает

Строку[] . Массив в котором элементы это название классов.

Использование

get_post_class( $class, $post_id );

$class(строка/массив) Классы, которые нужно добавить в список.
По умолчанию: » $post_id(число/WP_Post) ID или объект записи, классы которой нужно получить.
По умолчанию: null

Примеры

#1 Демонстрация вывода
$classes = get_post_class(); print_r( $classes ); /* Array ( [0] => post-219 [1] => post [2] => type-post [3] => status-publish [4] => format-standard [5] => has-post-thumbnail [6] => hentry [7] => category-blog [8] => tag-novosti ) */
#2 Выведем все классы в виде строки

Этот код можно использовать как замену для post_class() :

echo '';
#3 Добавим свой класс
$classes = get_post_class('foo bar'); // или можно массивом $classes = get_post_class( array('foo', 'bar') ); /* Оба примера добавят в общий массив Array ( [0] => foo [1] => bar [2] => post-19 ) */
#4 Удалим ненужный класс

Допустим нам нужно избавиться от класса hentry , тогда перед вызовом get_post_class() или post_class() используйте такой фильтр:

add_filter( 'post_class', 'remove_hentry' ); function remove_hentry( $classes ) < $unset = array('hentry'); // можно добавить еще return array_diff( $classes, $unset ); >

Добавить свой пример

Заметки

  • С версии 3.1 введена поддержка форматов постов.
  • С версии 4.2 введена поддержка таксономий.

Список изменений

С версии 2.7.0 Введена.
С версии 4.2.0 Custom taxonomy class names were added.

Код get_post_class() get post class WP 6.4.3

function get_post_class( $css_class = '', $post = null ) < $post = get_post( $post ); $classes = array(); if ( $css_class ) < if ( ! is_array( $css_class ) ) < $css_class = preg_split( '#\s+#', $css_class ); >$classes = array_map( 'esc_attr', $css_class ); > else < // Ensure that we always coerce class to being an array. $css_class = array(); >if ( ! $post ) < return $classes; >$classes[] = 'post-' . $post->ID; if ( ! is_admin() ) < $classes[] = $post->post_type; > $classes[] = 'type-' . $post->post_type; $classes[] = 'status-' . $post->post_status; // Post Format. if ( post_type_supports( $post->post_type, 'post-formats' ) ) < $post_format = get_post_format( $post->ID ); if ( $post_format && ! is_wp_error( $post_format ) ) < $classes[] = 'format-' . sanitize_html_class( $post_format ); >else < $classes[] = 'format-standard'; >> $post_password_required = post_password_required( $post->ID ); // Post requires password. if ( $post_password_required ) < $classes[] = 'post-password-required'; >elseif ( ! empty( $post->post_password ) ) < $classes[] = 'post-password-protected'; >// Post thumbnails. if ( current_theme_supports( 'post-thumbnails' ) && has_post_thumbnail( $post->ID ) && ! is_attachment( $post ) && ! $post_password_required ) < $classes[] = 'has-post-thumbnail'; >// Sticky for Sticky Posts. if ( is_sticky( $post->ID ) ) < if ( is_home() && ! is_paged() ) < $classes[] = 'sticky'; >elseif ( is_admin() ) < $classes[] = 'status-sticky'; >> // hentry for hAtom compliance. $classes[] = 'hentry'; // All public taxonomies. $taxonomies = get_taxonomies( array( 'public' => true ) ); /** * Filters the taxonomies to generate classes for each individual term. * * Default is all public taxonomies registered to the post type. * * @since 6.1.0 * * @param string[] $taxonomies List of all taxonomy names to generate classes for. * @param int $post_id The post ID. * @param string[] $classes An array of post class names. * @param string[] $css_class An array of additional class names added to the post. */ $taxonomies = apply_filters( 'post_class_taxonomies', $taxonomies, $post->ID, $classes, $css_class ); foreach ( (array) $taxonomies as $taxonomy ) < if ( is_object_in_taxonomy( $post->post_type, $taxonomy ) ) < foreach ( (array) get_the_terms( $post->ID, $taxonomy ) as $term ) < if ( empty( $term->slug ) ) < continue; >$term_class = sanitize_html_class( $term->slug, $term->term_id ); if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) < $term_class = $term->term_id; > // 'post_tag' uses the 'tag' prefix for backward compatibility. if ( 'post_tag' === $taxonomy ) < $classes[] = 'tag-' . $term_class; >else < $classes[] = sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id ); > > > > $classes = array_map( 'esc_attr', $classes ); /** * Filters the list of CSS class names for the current post. * * @since 2.7.0 * * @param string[] $classes An array of post class names. * @param string[] $css_class An array of additional class names added to the post. * @param int $post_id The post ID. */ $classes = apply_filters( 'post_class', $classes, $css_class, $post->ID ); return array_unique( $classes ); >

Cвязанные функции

class (css классы)
  • get_comment_class()
  • wc_body_class()
Другие функции темы
  • add_theme_support()
  • bloginfo()
  • body_class()
  • current_theme_supports()
  • get_custom_header_markup()
  • get_custom_logo()
  • get_header_image()
  • get_header_image_tag()
  • get_header_textcolor()
  • get_header_video_url()
  • get_page_template()
  • get_page_templates()
  • get_query_template()
  • get_stylesheet()
  • get_template()
  • get_theme_mod()
  • get_theme_mods()
  • get_theme_root()
  • has_custom_logo()
  • has_header_image()
  • has_header_video()
  • header_image()
  • is_child_theme()
  • is_header_video_active()
  • post_class()
  • register_nav_menu()
  • register_nav_menus()
  • register_theme_directory()
  • remove_theme_mod()
  • remove_theme_mods()
  • remove_theme_support()
  • search_theme_directories()
  • set_theme_mod()
  • single_month_title()
  • the_custom_header_markup()
  • the_custom_logo()
  • the_header_video_url()
  • the_search_query()
  • unregister_nav_menu()
  • wp_body_open()
  • wp_custom_css_cb()
  • wp_footer()
  • wp_get_archives()
  • wp_get_document_title()
  • wp_get_theme()
  • wp_get_themes()
  • wp_head()
  • wp_is_mobile()
  • wp_nav_menu()
  • wp_robots()
  • wp_site_icon()
  • wp_title()

2 комментария

Ситуация следующая: на каждый пост по 50 меток (tags) и мне не нравится, что это захламляет html-код, и к классам-меткам обычно никто и не привязывается. Тогда вопрос: как удалить классы-теги ( tagg[$key] = ‘tag-‘ . $tag->slug; ) ? Даже так: как отключить этот процесс, чтобы wordpress не тратил ресурсы сервера на их создание (ведь где-то же он создает классы-теги перед их отключением)?

Как управлять ревизиями страниц и постов wordpress

Каждый раз, когда вы сохраняете страницу или сообщение в WordPress, система создает ревизию (редакция). Это происходит как в черновиках, так и в уже опубликованных постах, которые обновляются. Такие ревизии могут быть полезны в случае, если вам нужно вернуться к предыдущей версии вашего контента. Тем не менее, они также могут повлиять на производительность вашего сайта WordPress.

На больших сайтах это может очень быстро добавить тысячи строк в вашей базе данных, которые не обязательно нужны. И чем больше у вас строк, тем больше размер вашей базы данных, которая занимает место для хранения . Следуйте приведенным ниже инструкциям, чтобы удалить, ограничить и отключить ревизии WordPress для повышения производительности.

Что такое ревизии (редакции) wordpress

Система ревизий WordPress хранит записи каждого сохраненного черновика или опубликованного обновления. Система ревизий позволяет видеть, какие изменения были внесены в каждую ревизию, перетаскивая ползунок (или используя кнопки «Следующая / Предыдущая»).

Что такое ревизии wordpress

Дисплей показывает, что изменилось в каждой ревизии – что было добавлено, что осталось неизменным и что было удалено. Линии, добавленные или удаленные, подсвечиваются, а отдельные изменения символов получают дополнительное выделение Нажмите кнопку «Восстановить эту ревизию», чтобы восстановить ревизию.

Страница ревизий также включает режим «сравнить любые две ревизии», который позволяет сравнивать любые две отдельные ревизии. В этом режиме ползунок имеет две ручки: одна представляет ревизию, с которой вы сравниваете, а другая представляет ревизию, с которой вы сравниваете. Перетащите маркеры, чтобы увидеть, что изменилось между любыми двумя конкретными ревизиями.

Примечание: кнопка «Восстановить эту редакцию» всегда восстанавливает ревизию, с которой вы сравниваете .

Чтобы вернуться к экрану редактирования сообщения без восстановления редакции, щелкните заголовок сообщения в верхней части страницы.

Как работают ревизии (редакции) в wordpress?

Старые сайты зачастую имеют более 100 ревизий на своих главных страницах. Это происходит из-за того, что на протяжении уже многих лет периодически обновляется контент и постоянно редактируются записи.

Допустим, например, что на сайте есть 700 страниц или постов с 150 ревизиями на каждой, это будет более 100 000 записей в базе данных. Такое происходит намного чаще, чем вы думаете. К счастью, есть несколько простых шагов, которые вы можете сделать, чтобы это не повлияло на производительность вашего сайта.

удалить ревизии wordpress

  • Удалить ревизии WordPress с плагином (Легкий вариант)
  • Удалить ревизии WordPress с помощью WP-CLI (Продвинутый вариант)
  • Ограничить количество ревизий WordPress (Рекомендованный вариант)
  • Отключить ревизии WordPress (Дополнительный вариант)

Как удалить ревизии (редакции) WordPress

Когда вы открываете новый сайт, то удалять нечего и можете спокойно перейти к следующему разделу, поскольку у вас не будет существующих ревизий. Но если вы находитесь на старом сайте, то первое, что вы, вероятно, захотите сделать ― это очистить и удалить сотни или даже тысячи различных ревизий WordPress. Именно здесь происходит «та самая магия», и вы можете освободить место в вашей базе данных.

Если вы попытаетесь сделать это с помощью запроса MySQL, то будьте очень осторожны. Среди форумов и различных хранилищ WordPress «гуляет» достаточно много плохих фрагментов кода с недостоверной информацией. Большинство из них предлагают запросы, которые могут удалить связь, необходимую для корректной работы ссылок на панели управления. Или того хуже – вообще потерять доступ.

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

Я пользуюсь бесплатным плагином WP-Sweep. Однако не советую вам использовать плагин WP-Optimize или Optimize Database после плагина Optimize Database after Deleting Revisions. Несмотря на то, что они очень популярны, эти плагины могут вызывать серьезную проблему, хотя и не у всех.

Если что-то было настроено некорректно, то запуск любого типа плагина базы данных может привести к поломке вашего сайта. Поэтому я всегда рекомендую заранее создать резервную копию базы данных MySQL. Если вы не до конца разбираетесь в этом вопросе, то можно обратиться к разработчику сайта или описать проблему на моем сайте в комментариях.

Шаг 1
Загрузите и установите бесплатный плагин WP-Sweep. На момент написания этой статьи плагин имел более 70 000 активных установок с рейтингом 4,5 из 5. Вы можете скачать его из базы данных WordPress или найти его на панели инструментов WordPress в разделе «Добавить новые» плагины.

Плагин для удаления ревизий wordpress

Шаг 2
Под вкладкой «Инструменты» нажмите «Очистить(
Sweep)». Вы увидите ревизии, а также их количество. Теперь Вы можете нажать «Подробнее», чтобы увидеть список сообщений, которые будут затронуты. В целях оптимизации производительности отображается только 500 элементов одновременно.

Очистка ревизий

Шаг 3
Когда вы будете готовы, нажмите «Очистить» рядом с «Ревизии».

Панель управления плагином WP-Sweep

После этого вы увидите краткое подтверждение общего количества удаленных ревизий.

результат работы плагина WP-Sweep

Т.к. это происходило на небольшом тестовом сайте, их не так много. Большие сайты, как правило, имеют немало удаленных ревизий.

Удалить ревизии WordPress с помощью WP-CLI

Другой вариант, который может особенно понравиться разработчикам WordPress, ― это возможность удалять ревизии (редакции) постов с помощью WP-CLI.

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

К стати, если данная тема интересна, можно сделать например специальную рубрику или просто раскрыть эти способы подробнее на страницах моего блога. Как вы на это смотрите?

Вот пример команды WP-CLI:

$ wp post delete $ (wp post list --post_type = 'revision' --format = ids)

управление ревизиями wordpress через WP-CLI

Прочитать больше о данном способе и различных командах, можно в документации WP-CLI.

Как ограничить количество ревизий WordPress

После того, как вы очистили свои старые ревизии, следующим шагом будет ограничение количества разрешенных вами ревизий WordPress. Это может быть отличной промежуточной мерой для предотвращения повторного внесения изменений. Возможно, вы хотите сохранить 3 ревизии.

WordPress сохранит этот номер и удалит все предыдущие. Вы также можете использовать wp-revisions-cli для очистки последующих ревизий на основе номера, указанного вами ниже.

Шаг 1
Откройте файл wp-config.php. Вам нужно будет добавить код. Обычно он находится в основной папке вашего сайта WordPress, и вы можете получить к нему доступ через FTP.

Подробнее о способах подключения можно посмотреть в этом видео

Важно! Редактирование исходного кода темы WordPress может привести к поломке сайта, если до этого были допущены ошибки при вводе кода. Если вы не до конца разбираетесь в этом вопросе, то советуем сперва обратиться к разработчику.

Шаг 2
Код, который представлен чуть ниже необходимо вставить над «ABSPATH», иначе он не будет работать. Опять же, вы можете изменить номер на любое количество ревизий, которые вы хотите сохранить в своей базе данных для каждой страницы или публикации.

define ('WP_POST_REVISIONS', 3);

Это должно выглядеть примерно так:

ограничение ревизий wordpress

Кроме того, вы также можете использовать премиум-плагин, например ― perfmatters, (разработанный членом команды в Kinsta), который позволяет ограничить количество сохраненных ревизий WordPress или вообще отключить их.

Как отключить ревизии WordPress (Дополнительный вариант)

Последний вариант ― это просто отключить ревизии (редакции) WordPress. Наиболее часто используемым методом обычно является второй вариант, о котором упоминалось выше. Однако, если вы являетесь единственным автором, то вы можете просто полностью избавиться от ревизий.

Помните, что система все равно сохранит черновик, просто у вас уже не будет точек для восстановления редакции.

Шаг 1
Алгоритм действий такой же, как и при ограничении количества ревизий (см. выше). Откройте файл wp-config.php.

Шаг 2
Строчку кода необходимо вставить так же над «ABSPATH».

define ('WP_POST_REVISIONS', false);

Это должно выглядеть примерно так:

удалить ревизии wordpress

И на “десерт” хочу порекомендовать плагин Disable Post Revision. Это бесплатный плагин WordPress, который занимает мало места на хранилище и удобен в использовании.

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

плагин Disable Post Revision

Заключение

Казалось бы, на фига в таком случае придуманы все эти ревизии (редакции). Ведь они только захламляют базу данных? Все достаточно просто. Ревизии wordpress нужны в основном тем, кто работает над контентом совместно и имеет равные права на редактирование.

Но если вы являетесь единственным автором, то лучше совсем избавиться от ревизий и тем самым повысить производительность своего проекта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *