Проблема: После того, как я повесил функцию на хук save_post - сама функция и хук отрабатывается полностью. Запись и ее изменения сохраняются.
Но только почему то в самой странице редактирования вместо "Запись сохранена" - отображает "Ошибка обновления", но на самом деле запись была сохранена, а функция выполнена.
В консоли:
{code: "internal_server_error",…}
additional_errors: []
code: "internal_server_error"
data: {status: 500}
status: 500
message: "На сайте возникли временные проблемы технического характера."
functions.php
add_action( 'save_post', 'add_original_text');
function add_original_text( $post_ID ) {
$webmaster = new WebmasterYandex();
$webmaster->ajaxAddTextToYandex($post_ID);
}
Class WebmasterYandex
public function ajaxAddTextToYandex($postId) {
$postData = get_post($postId);
$this->sendTextToYandex( $postData->post_content );
}
public function sendTextToYandex($text) {
$text = strip_tags($text);
$text = htmlspecialchars($text);
//$text = urlencode($text);
$text = "<Data><content>{$text}</content></Data>";
$curlOptions = array(CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_POSTFIELDS => $text);
$response = $this->performYandexWebmasterApiRequest2($url, $curlOptions);
}
public function performYandexWebmasterApiRequest2($curlOptions = array()) {
$headers = array(
'Content-type: application/xml;charset=UTF-8',
'Authorization: OAuth ' . $this->getYandexToken()
);
$headers = array_merge($headers, $additionalHeaders);
$requestOptions = array(
CURLOPT_URL => 'https://api.webmaster.yandex.net/v4/user/50045914/hosts/https:news.gsl.org:443/original-texts/',
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CUSTOMREQUEST => 'POST'
);
if (count($curlOptions)) {
foreach ($curlOptions as $curlOption => $curlOptionValue) {
$requestOptions[$curlOption] = $curlOptionValue;
}
}
$response = $this->getPage($requestOptions);
return $response;
}
Логи
PHP Fatal error: Uncaught Error: Class 'WebmasterYandex' not found in C:\inetpub\wwwroot\projects\news\wp-content\themes\jnews\functions.php:1171
Почему по факту все отрабатывается хорошо - но Uncaught Error: Class 'WebmasterYandex' not found?
UPD: Решение
Надо в functions.php в самой функции сделать условие class_exists()
if ( class_exists( 'WebmasterYandex' ) ){
$webmaster = new WebmasterYandex();
$webmaster->ajaxAddTextToYandex($post_ID);
}
UPD: Решение
Надо в functions.php в самой функции сделать условие class_exists()
if ( class_exists( 'WebmasterYandex' ) ){
$webmaster = new WebmasterYandex();
$webmaster->ajaxAddTextToYandex($post_ID);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я создаю Вход и АвторизациюЯ почти закончил но возникла такая проблема
Как загрузить на сайт изображение в base64, отправив post-запрос с nodejs с именем изображения и самим base64?