Wordpress "Сохранить черновик" не работает: "ответ не является допустимым JSON ответом" - PullRequest
0 голосов
/ 09 мая 2020

У меня появляется эта ошибка каждый раз, когда я пытаюсь сохранить черновик или публикацию sh или многие другие операции (и во всех новостях):

Updating failed. Error message: The response is not a valid JSON response.

Wordpress json not valid

Запрос:

{"id":488,"content":"<!-- wp:paragraph -->\n<p>Try </p>\n<!-- /wp:paragraph -->","title":"Try"}

Отрывок ответа, глядя на вкладку сети (по какой-то странной причине он включает html в дополнение к json):

<span class="posted-on">Posted on
...
</span>{"id":488,"date":"2020-05-08T22:57:44","date_gmt":"2020-05-08T21:57:44","guid":{"rendered":
...

Решение, используемое для других вопросов, - использовать старый Classic Editor, но я предпочитаю новый: Ошибка публикации или загрузки. Сообщение об ошибке: «Ответ недействителен JSON ответ»

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Обновите постоянную ссылку. Если не исправлено, отключите редактор блоков и вернитесь в редактор Classi c.

0 голосов
/ 09 мая 2020

Причина этой ошибки была глупая. Проблема заключалась в том, что когда wordpress отправлял запрос JSON, ответ был не в формате JSON. echo вместо return в одной из моих функций темы, в тегах template-tags. php.

Это заставляло каждый json забирать с собой этот html.

if ( ! function_exists( 'my_posted_on' ) ) {
    function my_posted_on() {
        $time_string = '';
        // ...
        $posted_on   = apply_filters(
            'my_posted_on', sprintf(
                '<span class="posted-on">...</span>',
                esc_html_x( 'Posted on', 'post date', 'theme' ),
                esc_url( get_permalink() ),
                apply_filters( 'my_posted_on_time', $time_string )
            )
        );
        $byline      = apply_filters(
            'my_posted_by', sprintf(
                '...'
            )
        );
        echo $posted_on . $byline;
    }
}

Я заменил echo на return и исправил.

...