Я думаю, что вы искали различные функции, методы, такие как последнее изменение, dateModified, dateCreated и многое другое — чтобы напрямую изменить дату публикации в WordPress.
Существуют много различных способов как изменить дату публикации вордпресс, например:
- через SQL скрипт;
- вручную через phpMyAdmin с выгрузкой дат из базы;
- с использованием TextKit (программа позволяет обновлять и редактировать большие базы данных);
- самописные скрипты, которые располагаются в корне сайта и работают при запуске из строки браузера;
- в ручном режиме из административной части сайта;
- автоматическое обновление даты публикации в WordPress.
Эта статья покажет вам 100% решение для отображения и изменения даты, которое Google показывает в результатах поиска, но не злоупотребляйте этим.
Я рекомендую обновлять дату публикации записей в WordPress только тогда, когда вы действительно обновили свою статью. Не обновляйте дату публикации без добавления свежей информации для пользователя. Google может удалить страницы или даже веб-сайты, которые просто обновляют дату публикации, фактически не добавляя к ней никакого контента.
Для меня потребовалось некоторое время, чтобы понять, почему Google так упрямо не учитывает мою измененную дату и не отображает ее в результатах поиска. После миллионных проб бесполезных вариантов — я нашел решение как изменить дату публикации wordpress.
Как изменить дату публикации на WordPress
WordPress имеет функциональность, которая позволяет вам редактировать посты и изменять дату перед публикацией. Это полезная функция, для того чтобы сделать записи свежим и актуальным. Вы также можете изменить порядок публикации постов или страниц, изменив дату. Тем самым вы измените порядок отображение записей на страницах рубрик.
Самый легкий способ, который не требует каких либо знаний в кодировании и не влияет на содержание и форматирование записей. Это перейти к записи wordpress, на которой вы хотите изменить дату публикации. В поле публикации нажмите кнопку «Изменить» слева от графы «Опубликовано» и обновите дату.
Из административной части панели управления WordPress в разделе «Все записи» также можно изменить дату публикации. Для этого надо навести курсор мыши на статью, в которой желаете изменить дату, выбрать на надпись «Свойства», изменить дату и нажать на кнопку «Обновить».
Этот метод применим как на постах, так и на страницах. При изменении даты, если вы выберете будущую дату и время, записи попадут в «Запланированное». Посты будут автоматически размещены в назначенное время.
Обновить дату публикации в разметке schema.org
Я уже писал, что Google не учитывает некоторые теги в схеме, когда он обновляет свои «данные» на странице результатов поиска. Но есть один тег, который является ключом ко всему этому — datePublished.
Если у вас уже есть код schema.org на вашей странице, и вы знаете, в каком файле его изменить — просто добавьте эту строку в конец схемы — перед закрывающейся скобки}
:
1 2 | , "datePublished" : "<? php echo get_the_date ('Ymd \ TH: i: s', $ post-> ID);?> + 00:00" , // появится в Google |
Если у вас нет структурированных данных на вашей странице, вам придется добавить ее к каждой записи с помощью ловушки, вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function react2wp_update_published_date_on_google() { if ( is_single() ) : global $post; ?> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "NewsArticle", // Вы можете изменить NewsArticle на TechArticle "mainEntityOfPage": { "@type":"WebPage", "@id":"<?php echo get_permalink( $post->ID ); ?>" }, "author": { "@type":"Person", "name":"<?php echo get_the_author_meta( 'display_name', $post->post_author ); ?>" }, "headline":"<?php the_title(); ?>", "url":"<?php echo get_permalink( $post->ID ); ?>", "thumbnailUrl":"<?php echo get_the_post_thumbnail_url( $post->ID, 'full' ); ?>", "description":"<?php echo get_post_meta( get_the_ID(), '_yoast_wpseo_metadesc', true ); ?>", "datePublished":"<?php echo get_the_date( 'Y-m-d\TH:i:s', $post->ID ); ?>+00:00", } </script> <?php endif; } add_action( 'wp_head', 'react2wp_update_published_date_on_google' ); |
Добавьте это действие в конец вашего файла functions.php
через FTP-клиент или через Внешний вид > Редактор тем > functions.php
в панели WordPress.
Как обновить в WordPress дату публикации поста
На изображении выше, вы могли увидеть небольшой флажок с надписью «Принудительное обновление даты публикации» в окне публикации.
Каждый раз, когда устанавливать этот флажок и нажимать «Обновить», то активируется действие, которое изменит дату публикации поста на текущее время, не делая ничего лишнего вручную. Просто добавьте этот код в functions.php
в вашу активную тему так же, как вы добавили код для структурированных данных schema.org.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | function react2wp_update_publishing_date() { $nonce = wp_nonce_field( '_cj_update_publishing_date', '_cj_update_publishing_date_nonce', TRUE, FALSE); ?> <div class="misc-pub-section cj-update-publishing-date"> <label for="cj-update-publishing-date"> <input type="checkbox" id="cj-update-publishing-date" name="cj_update_publishing_date" value="1" /> <strong>Принудительное обновление даты публикации</strong> <?php echo $nonce ?> </label> </div> <? } add_action( 'post_submitbox_misc_actions', 'react2wp_update_publishing_date' ); function react2wp_update_publishing_date__save( $post_id ){ if ( wp_is_post_revision( $post_id ) ) { return; } if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } // ЕСЛИ ФЛАЖОК НЕ УСТАНОВЛЕН if ( ! isset ( $_POST[ 'cj_update_publishing_date' ] ) ) { return; } if ( ! wp_verify_nonce( $_POST[ '_cj_update_publishing_date_nonce' ], '_cj_update_publishing_date' )){ return; } $time = current_time('mysql'); remove_action('save_post', 'react2wp_update_publishing_date__save'); wp_update_post( array ( 'ID' => $post_id, // ID записи для обновления 'post_date' => $time, 'post_date_gmt' => get_gmt_from_date( $time ) ) ); add_action( 'save_post', 'react2wp_update_publishing_date__save' ); } add_action( 'save_post', 'react2wp_update_publishing_date__save', 10, 2 ); |
С помощью одной простой настройки в технологию вашего сайта на WordPress вам удастся поднять органический трафик более чем на 50% благодаря этому хаку:
- Повысится рейтинг в Google по целевому ключевому слову;
- Увеличиться рейтинг кликов на ваш сайт из поиска;
- Увеличится взаимодействие пользователя с вашим контентом.
И все это бесплатно в течение примерно 20 минут. Но этот совет относится только к уже существующему контенту, который пользуется популярностью в поисковой системе.
Если вас смущает код выше, тем что нужно постоянно нажимать на чекбокс принудительного обновления, то функцию можно сократить до минимума, применив код ниже:
1 2 3 4 5 6 7 | function reset_post_date_wpse_121565($data,$postarr) { // var_dump($data,$postarr); die; // debug $data['post_date'] = $data['post_modified']; $data['post_date_gmt'] = $data['post_modified_gmt']; return $data; } add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2); |
Примечание: Если вы прописали этот код в своем файле functions.php, то рекомендую запомнить, то что она у вас установлена. Так как при каждом нажатии на кнопку «Обновить» в записи, будет обновляться и дата публикации вашего поста.
Итак, теперь вы знаете как обновить дату, но это не совсем удобный вариант для обновлении даты на всех записях вашего блога. В следующем разделе я дам и объясню вам, как автоматически изменить дату публикации на всех записях WordPress — нажатием одной кнопки.
Автоматическое обновление даты публикации в WordPress
Я рад сообщить вам, что с версии WordPress 4.7 разработчики и вебмастера могут регистрировать свои собственные пункты для массовых действий на экранах списков записей и страниц.
WordPress обладает очень мощным механизмом — хуками и фильтрами. Чтобы добавить параметр в раскрывающийся HTML-элемент «Массовые действия», нужно зарегистрировать вызов в bulk_actions-{screen_id}
фильтре, который добавит новый параметр в массив. Для обработки отправки формы массового действия зарегистрируем обратный вызов в handle_bulk_actions-{screen_id}
фильтре для соответствующего экрана. Поэтому обязательно изменим URL перенаправления, переданный $redirect_url
. Это позволит нам отобразить уведомление для пользователя.
Именно при помощи добавления собственного кода в один из хуков мы и решим задачу как добавить свое массовое действие в WordPress и автоматически изменить дату публикации в базе данных MySQL. Чтобы добавить обработчик массовых действий используем следующий код с хуком уведомления, чтобы пользователь знал, что произошло:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /* Своя Функция массового изменения даты публикации в записях */ function register_my_bulk_actions($bulk_actions) { $bulk_actions['data_to_public'] = __('Изменить Дату публикации', 'data_to_public') ; return $bulk_actions; } add_filter( 'bulk_actions-'.'edit-post', 'register_my_bulk_actions' ); function my_bulk_action_handler( $redirect_to, $doaction, $post_ids ){ // ничего не делаем если это не наше действие if( $doaction !== 'data_to_public' ) return $redirect_to; foreach( $post_ids as $post_id ){ // действие для каждого поста if ( wp_is_post_revision( $post_id ) ) { return; } if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } $time = current_time('mysql'); remove_action('save_post', 'react2wp_update_publishing_date__save'); wp_update_post( array ( 'ID' => $post_id, // ID записи для обновления 'post_date' => $time, 'post_date_gmt' => get_gmt_from_date( $time ) ) ); add_action( 'save_post', 'react2wp_update_publishing_date__save' ); } $redirect_to = add_query_arg( 'my_bulk_action_done', count( $post_ids ), $redirect_to ); return $redirect_to; } add_filter( 'handle_bulk_actions-'.'edit-post', 'my_bulk_action_handler', 10, 3 ); function my_bulk_action_admin_notice(){ // выводим уведомления с результатом if( empty( $_GET['my_bulk_action_done'] ) ) return; $data = $_GET['my_bulk_action_done']; $msg = sprintf( 'Дата публикации изменена в %d записей.', intval($data) ); echo '<div id="message" class="updated"><p>'. $msg .'</p></div>'; } add_action( 'admin_notices', 'my_bulk_action_admin_notice' ); |
В том месте, где проверяется id записи WordPress, вы можете проверить на соответствие записи, рубрики или страницы.
В выпадающем списке массовых действий появился пункт «Изменить Дату публикации». Код нашей функции выполнит следующие действия, если пользователь выберет нужный пункт выпадающего списка :
- проверит что выбранное действие — наше;
- выполнит массовое действие;
- переведет пользователя обратно на страницу с выводом уведомления.
Заключение
Вы можете установить плагины для обновления даты, но после установки вы увидите меню с многочисленными настройками. Или вы можете использовать ручной вариант, который я предпочитаю. Так что, если у вас есть устаревший контент, то раз в 2 месяца обновляйте свой контент. Нажимая кнопку «Применить» в массовых действиях с записями и код автоматически обновит «дату публикации».
Вот и все. Думаю вы сможете сами модифицировать приведенные коды так, чтобы они работали так, как вам нужно. То есть я не просто изменял дату публикации, но массово назначал выбранным постам мета-значение и выполнял любые другие действия.
Вот и все для этой статьи, теперь вы знаете как публиковать свежий контент, не беспокоясь, увидит ли это Google или нет! Вы можете поделиться своими мыслями в комментариях ниже.
Здравствуйте. В настройках записи самый ранний год, который можно установить — 1900. А можно как-то установить ещё более раннюю дату? Публикую информацию генеалогического характера и хочу чтобы события отражались в хронологическом порядке.
К сожалению, это не возможно в обычном WordPress. Однако, если вы используете специальный плагин, такой как WP Old Post Date Remover, который удаляет дату публикации на постах старше определенной даты, вы сможете скрыть дату публикации старых постов. Но не рекомендуется удалять дату публикации, так как это усложняет индексацию оригинального контента роботами поисковых систем.