Попытка создать шорткод сетки / столбца

Я ходил туда-сюда, делал много проб и ошибок. То, что я хочу вывести, это шорткоды сетки / столбца.

Например, [grid_4]Lorem Ipsum[/grid4]

до сих пор это то, что я придумал

/*Grid Shortcode*/
function grid_one($content = null) {
    return '<div class="one columns">'.$content.'</div>';
}   

add_shortcode('column_one', 'grid_one' );

при попытке применить открывающий и закрывающий шорткод. Мой текст, кажется, исчезает. Я использую каркасный каркас, и мой CSS для этой таблицы стилей находится в этой папке, которая называется "CSS".

CSS / Skeleton.css

Когда я пытался создать шорткод clearfix. Кажется, что он работает нормально без проблем и очищает всплывающие элементы. Вот код

//Clear Shortcode
function clear_fix($content = null) {
    return '<div class="clearfix"></div>';
}

add_shortcode ('clear', 'clear_fix');

и мой style.css находится в корне, а не внутри папки

1 ответ

Извините, я немного озадачен вашим примером, когда вы используете [grid_4] в качестве шорткода, но функция в вашем примере будет использовать [column_one] в качестве шорткода. Если я правильно понимаю, у вас также будет другой шорткод для каждой ширины столбца? Вы можете объединить их в один короткий код, если хотите. Например:

// column (grid) shortcode
function my_col($params,$content=null){
    extract(shortcode_atts(array(
        'no' => ''
    ), $params));
    return '<div class="col grid_'.$no.'">'.do_shortcode($content).'</div>';
}
add_shortcode("col", "my_col");

Итак, если бы у вас была сетка из 12 столбцов, это можно было бы использовать так:

[col no="6"] This is the first column [/col]
[col no="6"] This is the second column [/col]

Вы также можете обернуть это в контейнер строк для очистки следующим образом:

[row]
  [col no="6"] This is the first column [/col]
  [col no="6"] This is the second column [/col]
[/row]

Шорткод для строки будет:

// row shortcode
function my_row($atts, $content = null){
    return '<div class="row">'.do_shortcode($content).'</div>';
}
add_shortcode("row", "my_row");

Наконец, я обнаружил, что у WordPress много проблем с автоматическим добавлением тегов параграфа и разрыва, поэтому я добавляю следующее в functions.php

// Help clean up automatic paragraph tags
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 12);
Другие вопросы по тегам