Я только что закончил простое обучение созданию плагинов WordPress.Я создал простой плагин, который будет регистрировать некоторые пользовательские шорткоды для использования классов начальной загрузки в редакторе WordPress.Я хочу сделать код плагина более читабельным и менее подверженным избыточному коду.Пока у меня есть эта единственная функция, которая упаковывает все основные классы, которые я использую в своих макетах, но я думаю, что она слишком сложна с точки зрения читабельности.
Есть ли лучший способ написать код?Я подумываю создать несколько файлов для включения, используя require_once
или функцию include
внутри метода класса, но я не уверен, будет ли это работать, потому что я использую выходной буфер для отображения HTML-кода.,Другое решение, которое я хочу протестировать, - разделить разметку различных столбцов на отдельные методы класса, но я не уверен насчет этого.
Я использую его на тестовой странице следующим образом:
[page_col type="col-6" mobile="hide"]the post or page content[/page_col]
Любое предложение будет оценено.
public function pageCol($atts, $content)
{
ob_start();
$content = strip_tags($content, '<p><span><div><img>');
$val = shortcode_atts(array(
'type' => 'col-12',
'mobile' => 'display'
),$atts);
if( $val['mobile'] === 'hide' ){
switch($val['type']){
case 'col-3':
?>
<div class="col-md-3 col-lg-3 d-none d-sm-none d-md-block">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-4':
?>
<div class="col-md-4 col-lg-4 d-none d-sm-none d-md-block">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-6':
?>
<div class="col-md-6 col-lg-6 d-none d-sm-none d-md-block">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-8':
?>
<div class="col-md-8 col-lg-8 d-none d-sm-none d-md-block">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-12':
?>
<div class="col-md-12 col-lg-12 d-none d-sm-none d-md-block">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
}
}
else{
switch($val['type']){
case 'col-3':
?>
// I want to require the file instead of writing the code inside the switch() statement
// example: include 'my-col-layout.php';
<div class="col-sm-12 col-md-3 col-lg-3">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-4':
?>
<div class="col-sm-12 col-md-4 col-lg-4">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-6':
?>
<div class="col-sm-12 col-md-6 col-lg-6">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-8':
?>
<div class="col-sm-12 col-md-8 col-lg-8">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
case 'col-12':
?>
<div class="col-sm-12 col-md-12 col-lg-12">
<?php echo $content; ?>
</div>
<?php
return ob_get_clean();
break;
}
}
}