Wp:plugin:easy-property-listings: различия между версиями
8j0rn (обсуждение | вклад) |
8j0rn (обсуждение | вклад) Нет описания правки |
||
| Строка 9: | Строка 9: | ||
Основные исправления делал через [[Wp:function|functions.php]] и поскольку для заказчика использовалась тема [[Wp:theme:storefront|StoreFront]] то все изменения вносил через нее. | Основные исправления делал через [[Wp:function|functions.php]] и поскольку для заказчика использовалась тема [[Wp:theme:storefront|StoreFront]] то все изменения вносил через нее. | ||
=== 2.1. === | === 2.1. Отключаем поддержку комментариев для всех типов записей=== | ||
<syntaxhighlight lang="php"> | |||
// Отключаем поддержку комментариев для всех типов записей | |||
function disable_comments_support() { | |||
// Отключаем поддержку комментариев для постов | |||
remove_post_type_support('post', 'comments'); | |||
// Отключаем поддержку комментариев для страниц | |||
remove_post_type_support('page', 'comments'); | |||
// Отключаем поддержку комментариев для медиафайлов | |||
remove_post_type_support('attachment', 'comments'); | |||
} | |||
add_action('init', 'disable_comments_support'); | |||
</syntaxhighlight> | |||
=== 2.2. Скрываем существующие комментарии=== | |||
<syntaxhighlight lang="php"> | |||
// Скрываем существующие комментарии | |||
function disable_comments_admin() { | |||
// Скрываем раздел "Комментарии" в админ-панели | |||
remove_menu_page('edit-comments.php'); | |||
// Скрываем метабокс с комментариями на странице редактирования записей | |||
remove_meta_box('commentsdiv', 'post', 'normal'); | |||
remove_meta_box('commentsdiv', 'page', 'normal'); | |||
// Скрываем метабокс с последними комментариями в консоли | |||
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); | |||
} | |||
add_action('admin_menu', 'disable_comments_admin'); | |||
</syntaxhighlight> | |||
=== 2.3. Отключаем комментарии в REST API=== | |||
Если отключаете комментарии, то отключите их и в REST API, иначе могут спамеры замучать. | |||
<syntaxhighlight lang="php"> | |||
// Отключаем комментарии в REST API | |||
function disable_comments_rest_api($open, $post_id) { | |||
return false; | |||
} | |||
add_filter('comments_open', 'disable_comments_rest_api', 10, 2); | |||
add_filter('pings_open', 'disable_comments_rest_api', 10, 2); | |||
// Удаляем комментарии из шаблонов | |||
function remove_comments_template() { | |||
return false; | |||
} | |||
add_filter('comments_template', 'remove_comments_template'); | |||
</syntaxhighlight> | |||
=== 2.4. Удаляем подписи под постами=== | |||
<syntaxhighlight lang="php"> | |||
// Удаляем подписи под постами | |||
function remove_author_box() { | |||
// Удаляем хук, который выводит блок автора | |||
remove_action('epl_single_author', 'epl_property_author_box'); | |||
remove_action('wpbf_after_article', 'wpbf_author_box'); | |||
} | |||
add_action('init', 'remove_author_box'); | |||
</syntaxhighlight> | |||
=== 2.5. Изменение функции плагина easy-property-listings === | |||
Кнопка "План помещения" открывала картинку в новом окне, пришлось переписать функцию чтобы открывалась в лайтбокс (lightbox), для этого еще пришлось добавить загрузку [[Wp:function:adding-download-magnific_popup|magnific_popup]] и [[Wp:function:adding-download-fancybox|fancybox]] js script | |||
<syntaxhighlight lang="php"> | |||
// Изменение функции плагина easy-property-listings (epl_button_floor_plan() отключаем и включаем свою функцию) | |||
function remove_epl_button_floor_plan() { | |||
// Отключаем стандартную функцию | |||
remove_action('epl_buttons_single_property', 'epl_button_floor_plan'); | |||
} | |||
add_action('init', 'remove_epl_button_floor_plan'); | |||
function _8j0rn_button_floor_plan() { | |||
// Кастомный код | |||
$keys = apply_filters( 'epl_floorplan_keys', array( 'property_floorplan', 'property_floorplan_2' ) ); | |||
foreach ( $keys as $key ) { | |||
$link = get_post_meta( get_the_ID(), $key, true ); | |||
$count = 'property_floorplan' === $key ? '' : substr( $key, - 1 ); | |||
$default = __( 'Floor Plan ', 'easy-property-listings' ) . $count; | |||
$meta_label = get_post_meta( get_the_ID(), $key . '_label', true ); | |||
$meta_label = empty( $meta_label ) ? $default : $meta_label; | |||
if ( is_array( $link ) ) { // Fallback if metadata is saved as an array. | |||
if ( ! empty( $link['image_url_or_path'] ) ) { | |||
$link = $link['image_url_or_path']; | |||
} else { | |||
$link = ''; | |||
} | |||
} | |||
if ( ! empty( $link ) && apply_filters( 'epl_show_' . $key, true ) ) { ?> | |||
<button type="button" class="epl-button epl-floor-plan epl-floor-plan-<?php echo absint( $count ); ?>" | |||
data-image="<?php echo esc_url( $link ); ?>" | |||
data-caption="<?php echo esc_attr( $meta_label ); ?>"> | |||
<?php | |||
$filter_key = str_replace( 'property_', '', $key ); | |||
if ( has_filter( 'epl_button_label_' . $filter_key ) ) { | |||
$label = apply_filters( 'epl_button_label_' . $filter_key, $meta_label ); | |||
} else { | |||
$label = apply_filters( 'epl_button_label_floorplan', $meta_label ); | |||
} | |||
?> | |||
<?php echo esc_html( $label ); ?> | |||
</button> | |||
<?php | |||
} | |||
} | |||
} | |||
add_action('epl_buttons_single_property', '_8j0rn_button_floor_plan'); | |||
</syntaxhighlight> | |||
Версия от 16:09, 8 марта 2025
Здеся я буду хранить все изменения что я внес в плагин Easy Property Listings Plugin:
Делая сайт заказчику использовал плагин Property Listings Plugin.
1. Сделал полный перевод плагину
Полный перевод плагина Property Listings Plugin: (Cкачать архив ZIP)
2. Исправления через functions.php
Основные исправления делал через functions.php и поскольку для заказчика использовалась тема StoreFront то все изменения вносил через нее.
2.1. Отключаем поддержку комментариев для всех типов записей
// Отключаем поддержку комментариев для всех типов записей
function disable_comments_support() {
// Отключаем поддержку комментариев для постов
remove_post_type_support('post', 'comments');
// Отключаем поддержку комментариев для страниц
remove_post_type_support('page', 'comments');
// Отключаем поддержку комментариев для медиафайлов
remove_post_type_support('attachment', 'comments');
}
add_action('init', 'disable_comments_support');
2.2. Скрываем существующие комментарии
// Скрываем существующие комментарии
function disable_comments_admin() {
// Скрываем раздел "Комментарии" в админ-панели
remove_menu_page('edit-comments.php');
// Скрываем метабокс с комментариями на странице редактирования записей
remove_meta_box('commentsdiv', 'post', 'normal');
remove_meta_box('commentsdiv', 'page', 'normal');
// Скрываем метабокс с последними комментариями в консоли
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_menu', 'disable_comments_admin');
2.3. Отключаем комментарии в REST API
Если отключаете комментарии, то отключите их и в REST API, иначе могут спамеры замучать.
// Отключаем комментарии в REST API
function disable_comments_rest_api($open, $post_id) {
return false;
}
add_filter('comments_open', 'disable_comments_rest_api', 10, 2);
add_filter('pings_open', 'disable_comments_rest_api', 10, 2);
// Удаляем комментарии из шаблонов
function remove_comments_template() {
return false;
}
add_filter('comments_template', 'remove_comments_template');
2.4. Удаляем подписи под постами
// Удаляем подписи под постами
function remove_author_box() {
// Удаляем хук, который выводит блок автора
remove_action('epl_single_author', 'epl_property_author_box');
remove_action('wpbf_after_article', 'wpbf_author_box');
}
add_action('init', 'remove_author_box');
2.5. Изменение функции плагина easy-property-listings
Кнопка "План помещения" открывала картинку в новом окне, пришлось переписать функцию чтобы открывалась в лайтбокс (lightbox), для этого еще пришлось добавить загрузку magnific_popup и fancybox js script
// Изменение функции плагина easy-property-listings (epl_button_floor_plan() отключаем и включаем свою функцию)
function remove_epl_button_floor_plan() {
// Отключаем стандартную функцию
remove_action('epl_buttons_single_property', 'epl_button_floor_plan');
}
add_action('init', 'remove_epl_button_floor_plan');
function _8j0rn_button_floor_plan() {
// Кастомный код
$keys = apply_filters( 'epl_floorplan_keys', array( 'property_floorplan', 'property_floorplan_2' ) );
foreach ( $keys as $key ) {
$link = get_post_meta( get_the_ID(), $key, true );
$count = 'property_floorplan' === $key ? '' : substr( $key, - 1 );
$default = __( 'Floor Plan ', 'easy-property-listings' ) . $count;
$meta_label = get_post_meta( get_the_ID(), $key . '_label', true );
$meta_label = empty( $meta_label ) ? $default : $meta_label;
if ( is_array( $link ) ) { // Fallback if metadata is saved as an array.
if ( ! empty( $link['image_url_or_path'] ) ) {
$link = $link['image_url_or_path'];
} else {
$link = '';
}
}
if ( ! empty( $link ) && apply_filters( 'epl_show_' . $key, true ) ) { ?>
<button type="button" class="epl-button epl-floor-plan epl-floor-plan-<?php echo absint( $count ); ?>"
data-image="<?php echo esc_url( $link ); ?>"
data-caption="<?php echo esc_attr( $meta_label ); ?>">
<?php
$filter_key = str_replace( 'property_', '', $key );
if ( has_filter( 'epl_button_label_' . $filter_key ) ) {
$label = apply_filters( 'epl_button_label_' . $filter_key, $meta_label );
} else {
$label = apply_filters( 'epl_button_label_floorplan', $meta_label );
}
?>
<?php echo esc_html( $label ); ?>
</button>
<?php
}
}
}
add_action('epl_buttons_single_property', '_8j0rn_button_floor_plan');