Size: a a a

WordPress for developers

2021 February 17

ИА

Игорь Азаренко... in WordPress for developers
Всем привет, может кто-то подсказать, как грамотно делать валидацию кастомных полей, в гугле куча подходов, но чувство что все они велосипеды.
Для себя пока выбрал такой алгоритм (смущает очищение опции ошибок, это по сути каждый раз запрос в базу при загрузке админ страниц, если бы каждый плагин так организовывал, то был бы треш):

//Проверяем поле, устанавливаем ошибку
function validate_seo_data($post_id, $post) {

   $errors = false;

   if($_POST['subhead'] != 'проверка') {

     remove_action('save_post', 'album_save_post');
       $errors .= 'Поле не прошло валидацию';
       $post->post_status = 'draft';
       wp_update_post( $post );
       add_action('save_post', 'validate_seo_data');

   }
   update_option('seo_errors', $errors);
   return;
}
add_action('save_post','validate_seo_data',1,2);

//показываем ошибку после сохранения
function show_seo_fieds_errors() {
   $errors = get_option('seo_errors');
   if($errors) {
       echo '<div class="error"><p>' . $errors . '</p></div>';
   }  
}
add_action( 'admin_notices', 'show_seo_fieds_errors' );

//очищаем опцию ошибок, чтобы не висело всегда
function clear_seo_fields_errors() {
   update_option('seo_errors', false);
}
add_action( 'admin_footer', 'clear_seo_fields_errors' );
источник
2021 February 18

IS

Igor Shmukler in WordPress for developers
я пытаюсь сделать plugin основываясь на https://www.digitalocean.com/community/tutorials/how-to-embed-a-react-application-in-wordpress-on-ubuntu-18-04

у меня на

   wp_enqueue_script( 'smw-runtime', get_site_url() . $asset_manifest[ 'runtime~main.js' ], array(), null, true );

   wp_enqueue_script( 'smw-main', get_site_url() . $asset_manifest[ 'main.js' ], array('smw-runtime'), null, true );

валятся ошибки -
(index):1 Uncaught SyntaxError: Unexpected token '<'
.
источник

IS

Igor Shmukler in WordPress for developers
как мне понять что там за проблема? можно как-то включить DEBUG? если да, то куда пишутся ошибки?
источник

IS

Igor Shmukler in WordPress for developers
define ('WP_DEBUG', true); ничего не сделало. возможно я не там смотрю.
источник

c

campusboy in WordPress for developers
Igor Shmukler
define ('WP_DEBUG', true); ничего не сделало. возможно я не там смотрю.
А где смотришь?
источник

IS

Igor Shmukler in WordPress for developers
wp-content/
источник

c

campusboy in WordPress for developers
Ну там же ещё надо включить, чтобы в файл писало
источник

c

campusboy in WordPress for developers
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
источник

IS

Igor Shmukler in WordPress for developers
campusboy
Ну там же ещё надо включить, чтобы в файл писало
где?
источник

IS

Igor Shmukler in WordPress for developers
OK
источник

IS

Igor Shmukler in WordPress for developers
campusboy
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
👍
источник

IS

Igor Shmukler in WordPress for developers
вроде теперь есть debug.log. спасибо. уважуха.
источник

IS

Igor Shmukler in WordPress for developers
есть ошибка: wp_enqueue_script( 'smw-runtime', get_site_url() . $asset_manifest[ 'runtime~main.js' ], array(), null, true );
источник

IS

Igor Shmukler in WordPress for developers
`PHP Notice:  Undefined index: runtime~main.js in /var/www/html/wp-content/plugins/seatmonger/includes/enqueue.php on line 21`
источник

IS

Igor Shmukler in WordPress for developers
почему-то там ~ вместо -
источник

TK

Timur Kaiser in WordPress for developers
Igor Shmukler
`PHP Notice:  Undefined index: runtime~main.js in /var/www/html/wp-content/plugins/seatmonger/includes/enqueue.php on line 21`
Написано - нет такого индекса в массиве $asset_manifest, выведите его, посмотрите, что внутри
источник

IS

Igor Shmukler in WordPress for developers
Timur Kaiser
Написано - нет такого индекса в массиве $asset_manifest, выведите его, посмотрите, что внутри
Уже работает
источник

TK

Timur Kaiser in WordPress for developers
Igor Shmukler
Уже работает
Окей) я думал, еще актуально, не посмотрел на время
источник

IS

Igor Shmukler in WordPress for developers
у меня вопрос по встраиванию React.JS. я сделал Wordpress Plugin который при указывании shortcode на странице показывает список продуктов встроенный в страницу. это первая половина и она работает.

я хочу добавить route /product/:id чтобы он показывал детали продукта. хочу чтобы детали показывались не внутри embed на отдельно, как полная страница. если можно, чтобы в отдельную полную страницу которую сделали как обычно, можно было добавить кусочки от продукта - picture, name, description, и тд.

как такое можно сделать?
источник

AD

Alex Disertinsky in WordPress for developers
Igor Shmukler
у меня вопрос по встраиванию React.JS. я сделал Wordpress Plugin который при указывании shortcode на странице показывает список продуктов встроенный в страницу. это первая половина и она работает.

я хочу добавить route /product/:id чтобы он показывал детали продукта. хочу чтобы детали показывались не внутри embed на отдельно, как полная страница. если можно, чтобы в отдельную полную страницу которую сделали как обычно, можно было добавить кусочки от продукта - picture, name, description, и тд.

как такое можно сделать?
/wp-json/wp/v2/posts/ или /wp-json/wc/v2/products/ если эт Woo
источник