7 октября 2010

WordPress советы – облегчаем себе жизнь с шорткодами

wordpress php советыПосле того как я стал использовать в работе шорткоды для удобства ( писал об этом здесь и здесь ) столкнулся с проблемой, что их нужно помнить, поскольку в том месте, где они нужны, напрочь не получается быстро вспомнить, как пишется тот или иной шорткод. Ну не лепить же стикер с описанием на экран ноутбука или монитора. Для того, чтобы описания шорткодов были всегда под рукой добавим их описания прямо в админку WordPress, прямо в то место, где редактируем статьи и используем для этой цели метабокс, который и будет содержать описания. Описания массива и функций нужно будет внести в файл functions.php
Сначала создадим массив, который содержит описания каждого шорткода

// Add array shortcodes description
$shortcode_meta_box = array(
    'id' => 'shortcode-meta-box',
    'title' => 'Шорткоды пользователя',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',
    'fields' => array(
		array(
			'name' => 'шорткод link',
			'desc' => 'добавляет nofollow и _blank к внешней ссылке',
			'id' => 'shortlink_link',
			'type' => 'text',
			'std' => ''
		),
        array(
			'name' => 'шорткод mc',
			'desc' => 'редирект внешней ссылки через redirect.php',
			'id' => 'shortlink_mc',
			'type' => 'text',
			'std' => ''
		)
	)
);

для примера я использовал два шорткода link и mc ( сейчас я их не указываю в квадратных скобках, иначе произойдет подстановка). Можно указывать любое количество шорткодов, добавляя элементы массива.
Далее опишем функцию добавления массива с описаниями к админке

// Add shortcode meta box
function add_shortcode_meta_box() {
    global $shortcode_meta_box;
    add_meta_box($shortcode_meta_box['id'], $shortcode_meta_box['title'], 'show_shortcode_meta_box', $shortcode_meta_box['page'], $shortcode_meta_box['context'], $shortcode_meta_box['priority']);
}

Следующая функция выводит на экран название шорткода и его описание в метабоксе

// Callback function to show fields in meta box
function show_shortcode_meta_box() {
    global $shortcode_meta_box;
	echo '<table>';
	foreach ( $shortcode_meta_box['fields'] as $field ) {
		echo '<tr>',
                '<td><label for="', $field['id'], '">', $field['name'], '</label> - ',
                $field['desc'],'</td>';
		echo '</tr>';

	}
	echo '</table>';
}

И наконец, последняя функция включит новый метабокс в админку

add_action('admin_menu', 'add_shortcode_meta_box');

После того как метабокс создан и выведен в админке, кликайте по заголовку и перетаскивайте его туда, где будет удобнее всего ему находится, чтобы всегда быть в поле зрения.
Нужен сайт? Здесь разработка сайтов

Статьи по теме
Статья оказалась полезной? Подпишись на RSS рассылку или следуй за мной на твиттере @wpstarter или по этой ссылке wpstarter

Комментариев: 17

Вы можете следовать любому комментарию через RSS 2.0 feed.

Вы можете оставить комментарий или trackback с вашего сайта.

  1. Для этих целей есть отличный плагин — Shortcoder v2.3. И не нужно править файл function.php — все делается из админки!

    • Alex:

      Действительно, не нужно править function.php, нужно править functionS.php.
      И ты удивишься, но есть люди которые предпочитают править functions.php вместо установки плагинов!

      • Master:

        Простите, недопечатал.»s»… Бывает. Согласен, что functions.php предпочтительней «грузить», чем устанавливать плагины. Сам так поступаю. Но иногда бывают исключения.
        У меня, например, для всех шорткодов есть отдельная страничка — кликнул по кнопке в админке — и пользуйся.
        Примерно так — http://bit.ly/gs71B1

        • Alex:

          плагины я использую когда работаю с клиентскими сайтами,
          поскольку перегруженный чужим кодом functions.php — головная боль

  2. Привет! Не совсем поняла, эти шорткоды выводятся в админке только как напоминалка-стикер или это рабочие шорткоды. То есть происходит ли подстановка шорткода в текст поста, например когда я в посте выделю текст и нажму по шорткоду в метабоксе?

  3. Спасибо! На досуге поразбираюсь обязательно ))

  4. Спасибо! Это то о чём я уже долго мечтала. Я имею ввиду плюгин

  5. Блин, как удобно то)) Спасибо большое)

Оставьте комментарий

Обведите фигуру по линии:

Ставим WordPress на локальном копьютере