Статьи

Как разбить контент WordPress на два или более столбца

разделить контент WordPress WordPress — это отличная CMS , но реализация некоторых функций в вашей теме может потребовать немного побочного мышления. Содержимое вашей страницы или сообщения обычно выводится кодом темы с помощью одного вызова функции:

the_content(args);

Но что, если вам нужно разделить содержимое на два или более блоков? Это может быть необходимо, если вашей теме требуется несколько столбцов или разделов на странице. WordPress предоставляет функцию get_the_content() В Интернете есть несколько решений, но большинство из них включают:

  1. Разделение контента по тэгам HTML, таким как заголовки h2 К сожалению, это требует, чтобы автор контента знал немного HTML, и он не очень универсален — вы не могли разрешить два заголовка в одном столбце.
  2. Использование шорткода WordPress. Это более гибко, но все же возлагает бремя на редактор контента, чтобы запомнить и использовать правильный код.

Тег WordPress <!--more--> Обычно он используется для разделения длинной статьи на две или более страниц, но не все темы используют эту возможность, и по умолчанию он работает только для сообщений WordPress (но не для страниц). Использование <!--more-->

  • Кнопка «еще» на панели инструментов доступна как на панели визуального редактирования, так и на панели редактирования HTML.
  • Подразделения могут быть размещены в любом месте контента.
  • Нетехническим пользователям легко понять, как контент будет разделен.

Панель редактирования WordPress с кнопкой «еще»

Чтобы разделить содержимое, найдите папку темы (wp-content / themes), отредактируйте или создайте файл functions.php и добавьте следующую функцию в блок <? Php…?>:

 
// split content at the more tag and return an array
function split_content() {

	global $more;
	$more = true;
	$content = preg_split('/<span id="more-d+"></span>/i', get_the_content('more'));
	for($c = 0, $csize = count($content); $c < $csize; $c++) {
		$content[$c] = apply_filters('the_content', $content[$c]);
	}
	return $content;

}

Теперь вам нужно найти файлы темы, которые вызывают the_content()цикле WordPress . Вы должны найти его в single.php и page.php, так как они используются для отображения отдельных сообщений и страниц соответственно. Он также может быть найден в index.php , archive.php и search.php , однако, они обычно показывают более одной статьи, поэтому будьте осторожны, как обрабатываются несколько блоков контента.

Найдя соответствующий код, закомментируйте the_content()split_content() Возвращает содержимое в виде массива; каждый элемент содержит один блок контента, разделенный <!--more-->

 
< ?php
// original content display
// the_content('<p>Read the rest of this page &raquo;</p>');

// split content into array
$content = split_content();

// output first content section in column1
echo '<div id="column1">', array_shift($content), '</div>';

// output remaining content sections in column2
echo '<div id="column2">', implode($content), '</div>';
?>

Я надеюсь, что вы найдете это полезным.