user8399592

user8399592

Занимаюсь созданием сайтов с 2014 года, сам програмирую, пишу тексты офформляю и.т.д. Интересны тематики IT, спорта и финансов. Пример: https://vse-mikrozaymy.ru/.
Пикабушник
100 рейтинг 0 подписчиков 16 подписок 5 постов 0 в горячем

Быстрый генератор sitemap.xml с помощью ChatGPT. Создание плагина без лишних наворотов за 5 минут, работающего на все 100%!

Серия Работа с ChatGPT (личный опыт)

Я: Привет! Помоги создать плагин wordpress для автогенерации sitemap.xml по всем стандартам поисковых систем. Сможешь?

ChatGPT: Привет! Конечно, я помогу тебе создать плагин для WordPress, который будет автоматически генерировать файл sitemap.xml по всем стандартам поисковых систем. Давайте начнем.

Создание плагина WordPress включает несколько шагов:

  1. Создание структуры плагина

  2. Написание основного файла плагина

  3. Генерация sitemap.xml

  4. Обработка событий добавления, обновления и удаления контента

  5. Обработка запросов к sitemap.xml

Создание структуры плагина

Для начала создадим структуру папок и файлов для нашего плагина:

wp-content/

└── plugins/

└── my-sitemap-plugin/

├── my-sitemap-plugin.php

├── includes/

│ └── sitemap-generator.php

Написание основного файла плагина

Файл my-sitemap-plugin.php является основным файлом плагина. В нем мы регистрируем наш плагин и подключаем необходимые файлы.

<?php

/*

Plugin Name: My Sitemap Plugin

Description: Плагин для автоматической генерации sitemap.xml.

Version: 1.0

Author: Ваше Имя

*/

// Определяем константы

define('MY_SITEMAP_PLUGIN_DIR', plugin_dir_path(__FILE__));

define('MY_SITEMAP_PLUGIN_URL', plugin_dir_url(__FILE__));

// Подключаем файл генератора sitemap

require_once MY_SITEMAP_PLUGIN_DIR . 'includes/sitemap-generator.php';

// Регистрируем активацию плагина

register_activation_hook(__FILE__, 'my_sitemap_plugin_activate');

function my_sitemap_plugin_activate() {

my_generate_sitemap();

}

// Регистрируем деактивацию плагина

register_deactivation_hook(__FILE__, 'my_sitemap_plugin_deactivate');

function my_sitemap_plugin_deactivate() {

my_delete_sitemap();

}

// Добавляем действия для генерации sitemap при изменении контента

add_action('save_post', 'my_generate_sitemap');

add_action('deleted_post', 'my_generate_sitemap');

add_action('trashed_post', 'my_generate_sitemap');

// Обрабатываем запросы к sitemap.xml

add_action('init', 'my_sitemap_rewrite_rule');

function my_sitemap_rewrite_rule() {

add_rewrite_rule('^sitemap\.xml$', 'index.php?sitemap=1', 'top');

}

add_filter('query_vars', 'my_sitemap_query_var');

function my_sitemap_query_var($vars) {

$vars[] = 'sitemap';

return $vars;

}

add_action('template_redirect', 'my_sitemap_template');

function my_sitemap_template() {

if (get_query_var('sitemap')) {

my_generate_sitemap();

exit;

}

}

Генерация sitemap.xml

Теперь создадим файл includes/sitemap-generator.php, который будет содержать функции для генерации и удаления sitemap.xml.

<?php

function my_generate_sitemap() {

$posts = get_posts(array(

'numberposts' => -1,

'post_type' => array('post', 'page'), // Здесь добавляем или удаляем нужные типы постов для включения в sitemap

'post_status' => 'publish',

));

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>');

foreach ($posts as $post) {

$url = $xml->addChild('url');

$url->addChild('loc', get_permalink($post));

$url->addChild('lastmod', get_the_modified_time('c', $post));

$url->addChild('changefreq', 'monthly'); // Здесь настраиваем частоту обновления

$url->addChild('priority', '0.8'); // Здесь настраиваем приоритет (у меня стоит этот 0.8)

}

$xml->asXML(ABSPATH . 'sitemap.xml');

}

function my_delete_sitemap() {

$sitemap = ABSPATH . 'sitemap.xml';

if (file_exists($sitemap)) {

unlink($sitemap);

}

}

Обработка событий добавления, обновления и удаления контента

Функции my_generate_sitemap и my_delete_sitemap уже подключены к соответствующим событиям в основном файле плагина. Эти функции будут вызываться при добавлении, обновлении и удалении постов или страниц.

Обработка запросов к sitemap.xml

В основном файле плагина мы добавили правила перезаписи URL и обработку запросов. Когда кто-то обращается к sitemap.xml, срабатывает функция my_sitemap_template, которая вызывает генерацию sitemap.xml и завершает выполнение скрипта.

Заключение

Теперь у нас есть полностью функциональный плагин для автоматической генерации sitemap.xml в WordPress. Этот плагин будет следить за изменениями контента и автоматически обновлять sitemap.xml, чтобы он всегда соответствовал текущему состоянию сайта.

Я! Спасибо, все работает!

ChatGPT: Отлично! Рад, что все работает. Если у тебя возникнут еще вопросы или потребуется помощь с другими проектами, не стесняйся обращаться. Удачи в разработке!

P. S Результат: https://vse-mikrozaymy.ru/sitemap.xml (не реклама). Чтобы посмотреть как ее видят поисковики нажмите Ctrl + U. Короче ничего лишнего.

Кому надо пользуйтесь на здоровье!

Показать полностью
3

Ответ FairAnger в «Ответ на пост "Микрозаймы и Госуслуги"»5

Государство бориться с черными кредиторами, т.е. (незаконными мфо или нарушающие законодательство). Легальные микрофинансовые организации состоящие в гос. реестре ЦБ РФ вполне законный бизнес. Статью про МФО, какими органами и законами регулируются читайте по ссылке (целая огромная статья об этом): https://vse-mikrozaymy.ru/chto-takoe-mfo-kak-i-kem-oni-reguliruyutsya-v-rossii/

И вообще что радует и внушает чуть оптимизма, что в последнее время ЦБ начал менять законодательство в лучшую сторону для граждан (хотелось бы побыстрее и побольше)... К примеру с 1 июля 2024, начал действовать закон согласнл которому кредитные и другие организации обязаны отвечать на обращения граждан в течение 15 рабочих дней. Подробнее об написано здесь. А если гражданин хочет все-таки прибегнуть к МФО, то ему необязательно (даже если МФО поддерживает авторизацию через Госуслуги) её проходить этим способом. Потрудился минут 10-15, заполнил анкету, сгенерил надежный пароль и никакой мошенник не взломает его так как никому он не нужен. Мошенники взламывают жирные сервисы где можно получить много данных... Вот и все! А я пошел на рыбалку...

Ответ FairAnger в «Ответ на пост &quot;Микрозаймы и Госуслуги&quot;»
Показать полностью 1

Как я сделал с помощью GPT чтобы ссылки на текущую страницу сайта (на которой пользователь находиться в данный момент) были неактивны...

Серия Работа с ChatGPT (личный опыт)

Скриншоты: https://vse-mikrozaymy.ru/, https://vse-mikrozaymy.ru/na-kartu/, https://vse-mikrozaymy.ru/kurs-valyut-cb-rf/usd/

Короче нужно было сделать так, чтобы ссылки ведущие на текущую страницу стали неактивны и меняли цвет, для удобства пользователя и немного для SEO.

Ниже выкладываю общение с GPT и конечно код (может кому пригодиться)

Итак поехали:

Я: Нужно написать функцию чтобы при нахождении на текущей странице сайта wordpress все активные ссылки которые указывают на неё же, стали неактивными. Можно это сделать?

GPT: Да, конечно, можно написать функцию для WordPress, которая будет проверять все активные ссылки на текущей странице и делать неактивными те из них, которые указывают на текущую страницу. Для этого мы можем использовать jQuery в WordPress. Ниже приведен пример кода:

  1. Добавьте следующий код в файл functions.php вашей темы (или в плагин, если вы пишете плагин):

<?php

add_action('wp_footer', 'disable_self_links');

function disable_self_links() {

?>

<script type="text/javascript">

jQuery(document).ready(function($) {

var currentPage = '<?php echo get_permalink(); ?>';

$('a').each(function() {

var link = $(this).attr('href');

if (link && link === currentPage) {

$(this).removeAttr('href').css('cursor', 'not-allowed').click(function(e) {

e.preventDefault();

});

}

});

});

</script>

<?php

}

?>

Этот код добавляет скрипт jQuery в подвал вашей страницы WordPress. При загрузке страницы он находит текущую страницу (используя get_permalink()) и затем проверяет каждую ссылку на странице. Если ссылка указывает на текущую страницу, то ссылка делается неактивной (удаляется атрибут href), меняется курсор на not-allowed и добавляется обработчик клика, который предотвращает действие по умолчанию.

  1. Сохраните изменения в файле functions.php.

Теперь, когда вы открываете страницу в WordPress, все активные ссылки, указывающие на текущую страницу, будут неактивными для кликов пользователей.

Я: Все работает! Спасибо!

Этот код только делает ссылки неактивными и меняет курсор. Я примерил его и потом решил попросить доработать код немного:

Я: Можешь немножко дополнить скрипт. Заменить тег ссылки на <div> и добавить класс "current".

GPT: Конечно, можно добавить класс "current" к тегу <div>, который заменит тег <a>. Вот обновленный скрипт:

add_action('wp_footer', 'replace_links_with_div_current');

function replace_links_with_div_current() {

?>

<script type="text/javascript">

jQuery(document).ready(function($) {

var currentPage = '<?php echo get_permalink(); ?>';

$('a').each(function() {

var link = $(this).attr('href');

var isSearchResultsPage = $(this).closest('.search-results').length > 0;

if (link && link === currentPage && !isSearchResultsPage) {

var divElement = $('<div>').addClass('current').html($(this).html());

$(this).replaceWith(divElement);

}

});

});

</script>

<?php

}

Теперь при замене тега <a> на <div>, этот <div> будет иметь класс "current". Если у вас есть еще вопросы или запросы, не стесняйтесь спрашивать!

Я: Спасибо! Все работает!

Вот такой результат: кого интересует может посмотреть здесь (не реклама). Смотрите в сайдбаре ссылки. Видно лучше всего что ссылка ведущая на текущую страницу стала неаетивной и красно-оранжевого цвета.

В одном посте на DTF, в комментариях люди говорят что GPT часто ошибается (вот комментарии). Я с этим не согласен. Единственное что хочу от себя добавить: в настройках GPT всегда разрешите сохранять историю, и ставьте вопросы конкретно и пошагово. Если вы его попросите сделать все сразу, то результат будет неудовлетворительным.

Всем пока! Удачи с вашими проектами!

Показать полностью 3

СПБ Биржа: подробное описание для начинающих

Серия Инвестиции

Что такое СПБ Биржа?

СПБ Биржа (до 2021 года — Санкт-Петербургская биржа) – это российская биржа, основанная в 1997 году. Она является крупнейшей в стране по объему торгов иностранными ценными бумагами.

Какие возможности предоставляет СПБ Биржа?

Покупка и продажа акций иностранных компаний:

Примеры: Apple, Tesla, Microsoft, Alibaba, Tencent, Meta (Facebook), Amazon, Alphabet (Google), Johnson & Johnson, Berkshire Hathaway.

Покупка и продажа биржевых фондов (ETF):

Примеры: широкий спектр ETF на различные активы, такие как акции (например, S&P 500, MSCI World), облигации (например, Bloomberg Barclays Global Aggregate Bond Index), золото (например, SPDR Gold Shares), нефть (например, United States Oil Fund).

Покупка и продажа еврооблигаций:

Примеры: облигации, выпущенные в иностранной валюте (например, долларах США, евро) крупными компаниями и правительствами.

Преимущества торговли на СПБ Бирже:

  • Доступ к широкому спектру иностранных ценных бумаг: возможность инвестировать в компании со всего мира, что позволяет диверсифицировать портфель и снизить риски.

  • Торги в валюте оригинального листинга: нет необходимости конвертировать рубли в иностранную валюту, что экономит на комиссиях и конвертации.

  • Низкие комиссии: комиссии на СПБ Бирже как правило ниже, чем на других биржах.

  • Удобное время торгов: торги на бирже проходят с 10:00 до 18:45 по московскому времени, что удобно для инвесторов из России.

  • Надежность: СПБ Биржа – это лицензированная биржа, которая входит в группу Московской биржи.

Что нужно знать начинающему инвестору:

Открыть брокерский счет: для торговли на бирже нужен брокерский счет.

Примеры брокеров: Тинькофф Инвестиции, Сбербанк Инвестиции, БКС Мир Инвестиций, Финам, Альфа-Инвестиции.

Определить свою инвестиционную стратегию:

Примеры стратегий:

  • Долгосрочное инвестирование: покупка и удержание акций на длительный срок (от нескольких лет).

  • Спекуляция: покупка и продажа акций в краткосрочной перспективе от колебаний цен.

  • Диверсификация портфеля: не стоит вкладывать все деньги в одну компанию или сектор.

Советы начинающим инвесторам:

  • Начните с небольших сумм: не стоит сразу инвестировать большие суммы денег.

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

  • Не принимайте поспешных решений: тщательно анализируйте информацию перед покупкой или продажей акций.

  • Следите за новостями: новости могут влиять на цены акций.·Не бойтесь задавать вопросы: брокеры и другие участники рынка могут помочь вам разобраться в тонкостях инвестирования.

Полезные ресурсы:

Сайт СПБ Биржи: https://spbexchange. ru/

Курсы по инвестированию: https://www.tinkoff.ru/invest/education/

Книга «Инвестиции для начинающих» от издательства «Альпина Паблишер»: https://avidreaders.ru/book/investicii-dlya-nachinayuschih.h...

YouTube-каналы: «РБК Инвестиции», «InvestFuture», «Простые инвестиции»

Надеюсь, эта информация поможет вам начать изучение темы инвестирования на СПБ Бирже.

Показать полностью

Как ChatGPT 3.5 помог мне написать шорткод для Вордпресс?

Серия Работа с ChatGPT (личный опыт)

Немного истории... Короче говоря есть страница к примеру: "котята". И есть несколько дочерних: белые серые и т.д. У меня на 1 из сайтов таких, дочерних страниц 201. Параллельно есть таксономии привязанные к типу поста "котята" который не индексируется. Он нужен только для распределения котят по категориям с последующим выводом на страницах в собственном шаблоне и не больше.

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

Маленькое уточнение! Я не супер в PHP но базовое понятие функций движка Wordpress есть, так что как поставить задачу чату проблем не возникло. Почему решил написать эту статью спросите вы? Отвечаю: по началу трудно всем и может именно эта статья даст толчок некоторым новичкам, так как сам процесс, очень интересен и познавателен, и ChatGPT объясняет что, где и за что отвечает и куда это все совать. Гуру вам этого не скажут бесплатно;)

Вывод количества на фронтенд: кодинг с помощью ChatGPT 3.5

Вывод количества на фронтенд: кодинг с помощью ChatGPT 3.5

Для мотивации конечный результат на фронтенде... https://vse-mikrozaymy.ru/summy/

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

Итак моя переписка с ChatGPT и примерами кода (может кому пригодится)

Я. Привет! Сможешь написать шорткод для вордпресс?

ChatGPT. Привет! Конечно, я могу помочь с написанием шорткода для WordPress. Что именно вы хотели бы добавить с помощью шорткода?

Я. У меня есть taxonomy=summ, в ней есть есть tag_ID=253, tag_ID=242 и т.д. Нужно написать шорткод для подсчета количества постов, привязанных к определенным id или slug в таксономии.

ChatGPT. Конечно, вот пример шорткода для подсчета количества постов по заданным tag_ID или slug в таксономии summ:

function count_posts_in_taxonomy_shortcode($atts) { // Парсим атрибуты шорткода $atts = shortcode_atts(array( 'tag_id' => '', 'slug' => '', ), $atts, 'count_posts_in_taxonomy'); // Параметры запроса $args = array( 'post_type' => 'post', // Укажите нужный тип записи, если это не статьи 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'summ', 'field' => is_numeric($atts['tag_id']) ? 'id' : 'slug', 'terms' => $atts['tag_id'] ? $atts['tag_id'] : $atts['slug'], ), ), ); // Получаем количество постов $post_count = count(get_posts($args)); // Возвращаем результат return $post_count; } // Регистрируем шорткод add_shortcode('count_posts_in_taxonomy', 'count_posts_in_taxonomy_shortcode');

Как использовать шорткод:

  • Если вы хотите подсчитать количество постов для tag_ID=253, используйте [count_posts_in_taxonomy tag_id="253"].

  • Если вы хотите подсчитать количество постов для slug='example', используйте [count_posts_in_taxonomy slug="example"].

Убедитесь, что код добавлен в файл functions.php вашей темы или в плагин для пользовательского кода.

Я. Спасибо! Ты гений!

ChatGPT. Пожалуйста! Рад был помочь! Если у вас есть ещё вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать. Удачи с вашим проектом WordPress!

Я. А можно как-то укоротить код

ChatGPT. Конечно, можно упростить код, используя более компактные конструкции. Вот более краткая версия:

function count_posts_in_taxonomy_shortcode($atts) { $atts = shortcode_atts(['tag_id' => '', 'slug' => ''], $atts, 'count_posts_in_taxonomy'); $args = [ 'post_type' => 'post', 'post_status' => 'publish', 'tax_query' => [[ 'taxonomy' => 'summ', 'field' => is_numeric($atts['tag_id']) ? 'id' : 'slug', 'terms' => $atts['tag_id'] ?: $atts['slug'], ]], ]; return count(get_posts($args)); } add_shortcode('count_posts_in_taxonomy', 'count_posts_in_taxonomy_shortcode');

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

Я. Не работает! Выводит правильно только первые 2 категории а в остальных выводит цифру 5

ChatGPT. Приношу извинения за это недоразумение. Проблема, вероятно, связана с тем, что в запросе используется параметр terms, который ожидает одно значение. Если вам нужно передать несколько значений, вы можете использовать IN вместо конкретного значения. Вот обновленный код, который должен решить проблему:

function count_posts_in_taxonomy_shortcode($atts) { $atts = shortcode_atts(['tag_id' => '', 'slug' => ''], $atts, 'count_posts_in_taxonomy'); $terms = $atts['tag_id'] ? (array) $atts['tag_id'] : [$atts['slug']]; $args = [ 'post_type' => 'post', 'post_status' => 'publish', 'tax_query' => [[ 'taxonomy' => 'summ', 'field' => is_numeric($atts['tag_id']) ? 'id' : 'slug', 'terms' => $terms, ]], ]; return count(get_posts($args)); } add_shortcode('count_posts_in_taxonomy', 'count_posts_in_taxonomy_shortcode');

Теперь код преобразует переданные значения в массив и использует их в параметре terms запроса. Надеюсь, это решит проблему. Если у вас есть ещё вопросы или проблемы, дайте знать!

Я. Проблема та же. Я использую несколько шорткодов на 1 странице.

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

function count_posts_in_taxonomy_shortcode($atts) { $atts = shortcode_atts(['tag_id' => '', 'slug' => ''], $atts, 'count_posts_in_taxonomy'); $tax $field = is_numeric($atts['tag_id']) ? 'id' : 'slug'; $terms = $atts['tag_id'] ? [(int) $atts['tag_id']] : [$atts['slug']]; $args = [ 'post_type' => 'post', 'post_status' => 'publish', 'tax_query' => [ [ 'taxonomy' => $taxonomy, 'field' => $field, 'terms' => $terms, ], ], ]; $query = new WP_Query($args); return $query->found_posts; } add_shortcode('count_posts_in_taxonomy', 'count_posts_in_taxonomy_shortcode');

В этой версии я заменил get_posts на WP_Query, чтобы иметь больше контроля над запросом. Также добавлены некоторые дополнительные параметры, чтобы убедиться, что каждый вызов шорткода работает независимо. Пожалуйста, протестируйте этот вариант и дайте знать, работает ли он в вашем случае.

Я. Вот теперь точно красавчик!!! Все заработало! Спасибо большущее!

ChatGPT. Отлично! Рад был помочь! Если у вас возникнут ещё вопросы или вам потребуется дополнительная помощь, не стесняйтесь обращаться. Удачи в вашем проекте!

Вот такой результат! Что хочется сказать в завершение: результат каждого зависит только от его фантазий так что однозначно не нужно боятся экспериментировать. Я бы и сам написал этот код, но пришлось бы потерять в 5 раз больше времени и каждый раз перечитывать кодекс WP или WP КАМУ. Спасибо за внимание! Деление опытом и идеи приветствуются!

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества