WordPress как на ладони
wordpress jino

Как сделать подсветку синтаксиса в wordpress как у сайта wp-kama.ru

Как сделать такую же подсветку синтаксиса как у Вас на сайте?
пример:

<?php

## Создаем страницу настроек плагина
add_action( 'admin_menu', 'add_plugin_page' );
function add_plugin_page(){
	add_options_page( 'Настройки плагина', 'Мой плагин', 'manage_options', 'myplug_slug', 'options_page_html' );
}

## HTML код страницы
function options_page_html(){
	?>
	<div class="wrap">
		<h2><?php echo get_admin_page_title() ?></h2>

		<form action="options.php" method="POST">
			<?php
			settings_fields( 'option_group' );     // скрытые защитные поля - nonce

			do_settings_sections( 'myplug_page' ); // секции с настройками (опциями). У нас она всего одна 'section_id'

			submit_button();
			?>
		</form>
	</div>
	<?php
}

## Регистрируем настройки. Настройки будут храниться в массиве, а не одна настройка = одна опция
add_action( 'admin_init', 'my_plugin_settings' );
function my_plugin_settings(){
	// создаем опцию
	register_setting( 'option_group', 'option_name', 'sanitize_callback' );

	// создаем секцию с полями
	add_settings_section( 'section_id', 'Основные настройки', '', 'myplug_page' );

	// создаем поля для секции
	$opt_name = 'my_option';
	add_settings_field( $opt_name, 'Моя опция', 'fill_field', 'myplug_page', 'section_id', $opt_name );

	$opt_name = 'my_option_two';
	add_settings_field( $opt_name, 'Моя вторая опция', 'fill_field', 'myplug_page', 'section_id', $opt_name );
}

## Заполняем опцию 1
function fill_field( $opt_name ){
	$opts      = get_option( 'option_name' );
	$name_attr = "option_name[$opt_name]";
	$val       = isset( $opts[ $opt_name ] ) ? $opts[ $opt_name ] : null;

	if( $opt_name === 'my_option' ){
		echo '<input type="text" name="'. $name_attr .'" value="'. esc_attr( $val ) .'" />';
	}

	if( $opt_name === 'my_option_two' ){
		echo '<label><input type="checkbox" name="'. $name_attr .'" value="1" '. checked( 1, $val, 0 ) .' /> галка или нет?</label>';
	}
}

## Очистка сохраняемых данных
function sanitize_callback( $options ){
	foreach( $options as $name => & $val ){
		if( $name == 'my_option' )     $val = sanitize_text_field( $val );

		if( $name == 'my_option_two' ) $val = intval( $val );
	}

	return $options;
}

Скрин^ http://joxi.ru/eAOGy1lU4W9K8A

0
Макс
7 месяцев назад
  • 0
    Kama6693

    Подсветка работает на скрипте https://highlightjs.org/ CSS стили (цвета) я правда изменил как мне нравится...

    Макс 7 месяцев назад

    а Вы сделали в виде плагина или сами как-то встраивали?
    может у Вас есть гдето статья про это? я просто не нашел ничего, еще нравится что когда наводишь на сам код, то окно расширяется

    Kama 7 месяцев назад

    Это самописный скрипт вшитый в тему, там кроме этого другие завязки есть и переделана логика вставки кода: не <pre><code> и просто <pre>. В общем там так просто не получится все это сделать, нужно будет адаптировать под тему и прочие мелочи...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация