Как в теме ColorMag изменить дефолтный шаблон?

К примеру, я хочу, чтобы по умолчанию дефолтным шаблоном в теме ColorMag был шаблон левым сайдбаром.

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

На момент написания вопроса тема поддерживала следующие варианты layout:

  • right_sidebar
  • left_sidebar
  • no_sidebar_full_width
  • no_sidebar_content_centered
  • default_layout

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

Решение:

add_action( 'wp', function () {
	if ( ! is_singular() ) {
		return;
	}

	$need_default_layout = 'left_sidebar'; // Желаемый дефолтный шаблон
	$current_layout      = get_post_meta( get_the_ID(), 'colormag_page_layout', true );

	if ( empty( $current_layout ) || 'default_layout' === $current_layout ) {
		add_filter( 'get_post_metadata', function ( $value, $object_id, $meta_key ) use ( $need_default_layout ) {
			return 'colormag_page_layout' !== $meta_key ? $value : $need_default_layout;
		}, 10, 3 );
	}
} );