Поддержка Плагины shortcode and «большие» посты

  • Решено dmitry-a-soshnikov

    (@dmitry-a-soshnikov)


    Здравствуйте,

    у меня странная проблема с функцией «add_shortcode», которую я использую для регистрации плагина:

    [ds-toc]
    
      // some *long* text
    
    [/ds-toc]

    Суть плагина не важна, поскольку, по всей видимости, здесь какой-то общий баг. Проявляется он именно с большими постами.

    Простейший код:

    add_shortcode('ds-toc', 'dsToc');
    
    function dsToc($args, $content = "") {
        var_dump($args, $content);
    }

    не работает. Функция «dsToc» не будет вызвана вообще, если пост будет большой. Но если сделать пост покороче — все прекрасно работает.

    Я нашел, что в файле /wp-includes/shortcode.php, в функцию do_shortcode content всегда приходит NULL в этом случае (с большими постами, хотя, очень сомнительно — что такое «большой» пост для WordPress-a).

    Спасибо.

    Кросспост с en: http://wordpress.org/support/topic/369378

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Вероятно, не хватает памяти, чтобы получить всё содержимое таких записей. Других ограничений быть не должно. Большие — это сколько КБ?

    Автор dmitry-a-soshnikov

    (@dmitry-a-soshnikov)

    Вероятно, не хватает памяти, чтобы получить всё содержимое таких записей

    Я тоже подумал, однако я выставил в php.ini:

    max_execution_time = 1000
    max_input_time = 200
    memory_limit = 1024M
    
    post_max_size = 512M

    но это не помогло.

    Большие — это сколько КБ?

    Вот именно, что не такие уж и большие — сохраненный в UTF-8 .txt-файл — 86Кб.

    Возможно, какой-то баг с PHP-шными функциями. Потому что, если не использовать shortcode-ы, то пост (любой длины) выбирается нормально — хоть в 5-10 раз длиннее.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «shortcode and «большие» посты» закрыта для новых ответов.