Как то нужно было сделать, чтобы шаблон сделанный в Oxygen показывался через шорткод в меню или выводился в баннере отдельно. Тогда я нашел замечательную статью Shortcode for displaying Oxygen templates and reusable parts. В не был готовый шорткод, в катором указывался ID reusable и он выводил контент с Oxy в любом месте. Проблема была только в оформлении, все настройки нужно было делать через классы, так как настройки к селектору ID не применялись, так как файлы со стилями не подгружались для этого reusable в других местах (так как он вставлялся не стандартно)
Вот пример этого кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
add_shortcode( 'oxygen-template', 'func_oxygen_template' ); /** * Add a custom shortcode for displaying a Oxygen template/reusable part. * * Sample usage: [oxygen-template id="478"] * * @param array $atts Shortcode attributes. * @return string HTML output of the specified Oxygen template/reusable part. */ function func_oxygen_template( $atts ) { return do_oxygen_elements( json_decode( get_post_meta( $atts['id'], 'ct_builder_json', true ), true ) ); } |
А в мае 2024 года после обновления Oxygen c 4.8.2 до 4.8.3 этот код перестал работать, и шорткод выводил пустое место. Оказалось, что причина была в прификсе мета полей. Так как с версии 4.8.3 мета поля были с прификсом «_» (нижнего подчеркивания).
И код изменился на такой с версии =>4.8.3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
add_shortcode( 'oxygen-template', 'func_oxygen_template' ); /** * Add a custom shortcode for displaying a Oxygen template/reusable part. * * Sample usage: [oxygen-template id="478"] * * @param array $atts Shortcode attributes. * @return string HTML output of the specified Oxygen template/reusable part. */ function func_oxygen_template( $atts ) { return do_oxygen_elements( json_decode( get_post_meta( $atts['id'], '_ct_builder_json', true ), true ) ); } |