使用PHP添加HTML类选择器

使用PHP添加HTML类选择器,php,html,Php,Html,我正在构建一个Wordpress主题,用户可以在其中选择一些可用的选项 假设我有一个选项,用户可以从可用选项中选择列宽。在我的page.php中,我使用以下代码添加类 <div class="<?php if ( my_column_width == '1' ) : ?> full-width <?php elseif ( my_column_width == '2' ) : ?> one-two <?php e

我正在构建一个Wordpress主题,用户可以在其中选择一些可用的选项

假设我有一个选项,用户可以从可用选项中选择列宽。在我的page.php中,我使用以下代码添加类

<div class="<?php if ( my_column_width == '1' ) : ?> full-width
            <?php elseif ( my_column_width == '2' ) : ?> one-two
            <?php elseif ( my_column_width == '3' ) : ?> one-three">

理想的做法是有一个
开关
,在那里你可以准备你的课程,然后把这个课程放到你的代码中

<?php

switch ($my_col_width) {
    case 1:
        $class = 'full-width';
        break;
    case 2:
        $class = 'two-cols';
        break;
    case 3:
        $class = 'three-cols';
        break;
    default:
        $class = 'four-cols';
        break;
}

?>

<div class="<?php echo $class; ?>">text</div>

创建一个函数:

function get_my_option_class($width)
{
    switch ($witdh) {
        case 2:
            $class = 'one-two';
            break;
        case 3:
            $class = 'one-three';
            break;
        case 1:
        default:
            $class = 'full-width';
    }

    return $class;
}
然后你会这样做:


在Wordpress中,您有几个动作挂钩和过滤器。在这种情况下,可以使用“body_class”过滤器。请看下面的示例

add_filter('body_class', 'my_body_classes_function');
function my_body_classes_function( $classes, $col_width = 0 ) {
    // your settings here
    switch ($col_width) {
        case 1 :
            $classes[] = 'my_col1_class';
            break;
        default :
            $classes[] = 'my_default_class';
            break;
    }

    return $classes;
}
将此函数添加到主题的functions.php中,并将以下HTML代码添加到模板中

<body <?php body_class(); ?>>

创建一个函数并使用它。我会从php和html不在同一个脚本中开始。一旦你将模板和值分开,事情通常会变得更容易。要求更好的方法在这里往往不起作用。@FélixGagnon Grenier这是WordPress:(WordPress迫使开发人员采取错误的做法:(但在我的情况下,WordPress对于PHP初学者来说是一个非常好的入门项目。特别是如果你能找到一个好的主题。)哦,对不起。你是对的。我会把这个答案留在这里,让其他有wordpress全幅问题的人知道。谢谢你,丹尼斯。我想我会开始写这些函数了。
<body <?php body_class(); ?>>