Как установить количество колонок галереи по умолчанию

Можно выставить количество колонок галереи через шердкод к примеру

[gallery_  size="medium" columns="0"  ids="33653,33654"]

Если количество колонок не выставлять

[gallery_  size="medium" ids="33653,33654"]

то будет автоматом выставлено 3 колонки.

Вопрос

Как сделать чтоб автоматически при вставке [gallery_ ids="33653,33654"] выводилась галерея в 0 колонок и размере medium?

Главное чтоб при этом галере реагировала на изменение количества columns="5".

П.С. gallery_ - равняется gallery

Заметки к вопросу:
kolshix 8.3 года назад

идем по адресе "/wp-includes/media.php"

ищем примерно 1600 строку и там код

function gallery_shortcode( $attr ) {
	$post = get_post();

	static $instance = 0;
	$instance++;

и добавляем немного кода после $instance++;

    // override default columns  settings
		if ( empty(  $attr['columns'] ) ) {
		   $attr['columns'] = 0; // set your default value here
		}
stepan 8.3 года назад

И после обновления движка могут слететь изменения.

kolshix 8.3 года назад

Это да, но я не страдаю обновлениями (вопрос был узкой направленности, можно будет целую статью написать по данному вопросу). Так как не знаю как работает wordpress, но могу предположить, что слетят только настройки в редакторе, а в базе данных уже будут лежать настройки к статье

0
kolshix
8.3 года назад 779
  • 0
    Kama 9796

    Для решения вашей задачи есть хук: shortcode_atts_{$shortcode}

    ## Установим 1 колонку в галереи по умолчанию
    add_filter('shortcode_atts_gallery', 'set_default_gallery_columns', 10, 3);
    function set_default_gallery_columns( $out, $pairs, $atts ){
    	// изменим значение по умолчанию, если значение не установлено
    	if( ! isset($atts['columns']) ){
    		$out['columns'] = 1;
    	}
    
    	return $out;
    }

    П.С. Не надо трогать файлы движка, желательно никогда!

    kolshix 8.3 года назад

    как показывает личный опыт, сначала ищешь хоть какое нибудь решение, потом прорабатываешь под свои нужды и усовершенствуешь. Я год мучился вручную ставил 0 колонок через кнопку редактора - сегодня лупануло-и решил ковырнуть код. Спасибо за ответ (позже думаю потестировать)

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