downloadtaky
  • 0
Новичок

Используйте Cron для изменения сообщений через sql

  • 0

Привет всем, мне нужно запускать это два раза в день:

UPDATE wp_posts SET post_content = REPLACE ( post_content, '[img]', '<img src="' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[IMG]', '<img src="' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/img]', '" />' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/IMG]', '" />' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[b]', '<strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[B]', '<strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/b]', '</strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/B]', '</strong>' );

Как это сделать? Я не хочу запускать его вручную и не могу делать это каждый раз, когда публикуется сообщение, потому что я работаю на веб-сайте MU, а мои авторы слишком ленивы, чтобы изменить свой код с bbCode на HTML. Я использую cPanel, поэтому могу легко добавить CronJob, если вы научите меня, как это делать. Спасибо всем!

Share
  1. @Downloadtaky: я понимаю, что вы не хотите заставлять своих пользователей выполнять преобразование из bbCode в HTML, но почему вы хотите сделать это в задании cron? Знаете ли вы, что существуют также фильтры, которые выполняются при создании сообщения, поэтому вы можете написать код, который всегда будет преобразовывать bbCode в HTML при написании нового сообщения?

    • 0
    • @Jan Fabry У меня уже есть плагин, который преобразует bbCode в html, но он не изменяет сообщение, он только читает теги [img][/img] и «анализирует» (это правильный способ сказать это???) это поэтому, если вы проверите код, вы увидите вместо этого «<img src», но мне нужно изменить код, чтобы правильно использовать захват первого изображения.

      • 0
    • @Downloadtaky: Да, эти плагины могут работать двумя основными способами: либо они берут содержимое базы данных и преобразовывают его в HTML каждый раз, когда отображается сообщение, либо берут содержимое редактора и один раз преобразуют его в HTML и сохраняют в базу данных при сохранении сообщения. Как называется плагин, который вы используете? Вероятно, можно преобразовать его из первого во второй тип.

      • 0
    • @Downloadtaky: Если вы не возражаете, что весь bbCode будет заменен на HTML (поэтому при повторном редактировании сообщения вы получите HTML вместо bbCode, но вы все равно можете добавить новый bbCode), вы можете заменить the_content последний строка этого плагина с content_save_pre . Это означает, что вы выполняете конвертацию не каждый раз, когда показываете пост, а только один раз, прямо перед тем, как вставить его в базу данных. Затем вам все равно нужно обновить существующие сообщения один раз, но для этого вам не нужна работа cron. Возможно, вам следует задать новый вопрос для этого.

      • 0
    • Я нуб в sql, не могли бы вы быть более конкретным? Используя запрос, который я дал вам, что мне делать? Должен ли я создать файл php?

      • 0
    • Я забыл включить глобальную переменную $wpdb в функцию… Спасибо за это замечание.

      • 0
  2. Создание собственных расписаний немного запутанно (поскольку они должны быть постоянными и храниться в базе данных), но довольно легко переключиться на одно из собственных расписаний, которые запускаются два раза в день.

    add_action( 'wp_version_check', 'my_function' );
    
    function my_function() {
    
        //stuff
    }
    

    Что касается выполнения реальных запросов, которые вы должны использовать $wpdb для этого.

    • 0
  3. Вы можете создать файл php, который включает wp-load.php следующим образом:

    require_once(wp-load.php');
    global $wpdb;
    

    Как только вы это сделаете, у вас будет доступ ко всему в WordPress, включая объект базы данных, поэтому вы можете выполнять запросы, используя $wpdb->query();

    Вы можете просто загрузить этот файл через cron (вам, вероятно, придется получить URL-адрес через веб-сервер).

    • 0

Оставить ответ

You must login to add an answer.