#php #wordpress #elementor
#php #wordpress #elementor
Вопрос:
У меня здесь большая проблема. Мне нужно отобразить дату публикации моего сообщения в разделе моего блога. (вы можете увидеть это здесь, в разделе блога на главной странице: https://netartsite.com.br/lamat / ).
Я использую Elementor Ultimate Addons для WordPress (ОАЭ), с виджетом Posts, с обложкой Events. У меня есть три сообщения в блоге, одно от 22 марта, а два других — от 1 апреля. Проблема в том, что все три сообщения в блоге отображают дату как 1 апреля вместо правильной даты публикации сообщения. (скриншот прилагается).
Я уже нашел в файлах плагинов точную часть, которая отображает дату:
<div class="uael-post__datebox <?php echo wp_kses_post( $this->get_no_image_class() ); ?>">
<div class="uael-post__date-wrap">
<?php
$date = "<span class='uael-post__date-day'>";
$date .= date_i18n( 'd', strtotime( get_the_date() ));
$date .= '</span>';
$date .= "<span class='uael-post__date-month'>";
$date .= date_i18n( 'M', strtotime( get_the_date() ));
$date .= '</span>';
?>
<?php echo wp_kses_post( apply_filters( 'uael_post_event_date', $date, get_the_ID(), get_option( 'date_format' ), '', '' ) ); ?>
</div>
</div>
Пробовал много редактировать в этой части, но безуспешно. После этого я нашел эту статью, показывающую, как я могу добавить этот код в свой functions.php для того, чтобы достичь того, чего я хочу, но опять же безуспешно.
Итак, ребята, я прошу вашей помощи: как я могу изменить дату отображения на фактическую дату публикации сообщения, а не только на дату публикации последнего сообщения?
Заранее большое вам спасибо!
[РЕДАКТИРОВАТЬ] Мне удалось заставить его работать!!! o/
После предыдущей статьи, о которой я говорил ранее, у меня был этот фрагмент кода для вставки в мой functions.php файл:
add_filter( 'uael_post_event_date', function( $date, $post_id, $date_format ) {
// Modify the date here
return $date;
}, 10, 3 );
Изначально я не очень хорошо понимал, что мне нужно изменить в этом файле, так как мои знания в PHP очень просты. Когда я вставлял код, у меня не было никаких изменений во внешнем интерфейсе. Итак, я начал изучать функции WordPress, которые могут отображать дату публикации публикации, и после проб и ошибок (много, lol) я смог заставить его работать, используя следующий код:
add_filter( 'uael_post_event_date', function( $date, $post_id, $date_format ) {
$date = get_post_field( 'post_date', $post_id, $date_format );
$date_format = get_the_date('d M', $post_id);
// Modify the date here
return $date_format;
}, 10, 3 );
Наконец, у меня есть дата публикации каждого сообщения, а не только день из последнего сообщения!!
Я собираюсь оставить это решение здесь, на случай, если у кого-то возникнет такая же проблема.
Ответ №1:
Возможно, опубликованный вами фрагмент не запускается в «цикле», поэтому get_the_date()
работает на текущей странице (или сегодняшней дате) вместо конкретной записи.
Есть ли где-нибудь в вашем коде ссылка «id», которую вы можете использовать и передавать get_the_date()
(в качестве второго параметра)? Вы пытались изменить get_the_date()
таким образом?
get_the_date('', get_the_ID())
Комментарии:
1. спасибо за ваше предложение! Однако, к сожалению, это не сработало.. Никаких изменений в конечном результате … =/