WordPress自定义文章类型管理页面布局

3

我正在创建一个使用自定义文章类型的插件,并希望创建自定义的布局/用户界面。

我知道有元框,但我认为这不是前进的方式。

目前我正在使用以下内容:

add_action('edit_form_advanced', 'my_add_to_core');

function my_add_to_core() {
    global $post;
    if ($post->post_type == 'my_post_type') {

        $tabs = [
            'General',
            'Settings',
            'Extras'
        ];

        ?>
            <div class="my-container">
                <div class="tab-group">
                    <nav>
                        <ul>
                            <?php $i = 0; foreach ($tabs as $tab) { ?>
                                <?php
                                    $i++;
                                    $title = $tab;
                                    $slug = sf_safestring($tab);
                                    $classes = '';
                                    if ($i == 1) $classes .= 'active';
                                ?>
                                <li class="<?= $classes; ?>"><a href="#<?= $slug; ?>"><?= $title; ?></a></li>
                            <?php } ?>
                        </ul>
                    </nav>
                </div>
                <div class="tabs">
                    <?php $i = 0; foreach ($tabs as $tab) { ?>
                        <?php
                            $i++;
                            $title = $tab;
                            $slug = sf_safestring($tab);
                            $classes = 'tab tab_'.$slug;
                            if ($i == 1) $classes .= ' active';
                        ?>
                        <div class="<?= $classes; ?>">
                            <h3><?= $title; ?></h3>
                        </div>
                    <?php } ?>
                </div>
            </div>
        <?php
    }
}

这样可以实现我的预期,将我的HTML添加到核心页面布局中。
以下是输出的布局: 输出的HTML 但我感觉这不是正确的做法。它感觉有点像hacky(未经审慎考虑就进行的编程)。
请问有人能提供建议吗?

您可以从DOM资源管理器中复制HTML。其次,有一个WordPress交流社区 - glend
1个回答

0

自定义元框是为自定义文章类型设置布局的正确方式。

元框是完全支持的、可移植的内容组。它们有一系列预设计的样式,您可以通过检查和复制核心元框中不同的类名来使用它们。最终用户还可以重新组织元框,如果它们的布局方式不符合他们的工作习惯。除此之外,从屏幕下拉菜单中,人们可以启用和禁用每个元框的可见性。您还可以为每个元框编程默认位置以“开始”。

如果您想加快开发速度,可以使用一个非常强大、流行且在WordPress社区中广泛使用的框架,称为ACF或高级自定义字段。它可以帮助您为高级CPT工作流程构建自定义元框。

http://www.advancedcustomfields.com/

我个人不使用它,因为升级主要版本可能需要对使用该代码的所有项目进行大规模更新。话虽如此,它将为您节省数天的开发时间,并且可以在开箱即用时完成一些非常惊人的事情。


谢谢你清晰的回答,但是我们发现元框非常有限,无法满足我们的意图。虽然ACF是一个很棒的插件(我在大多数项目中都会使用),但这并不是我所需要的。正如我在问题中提到的,我正在开发一个插件,使用ACF来处理后台并不是最佳实践,因为我的插件将需要安装ACF。 - Levi Cole
实际上,ACF是可移植的,因为他们已经记录了如何将ACF作为您代码的便携式稳定模块包含在内。它不会像普通插件一样得到更新,但它将继续与您下载时相同的方式工作。我同意你的观点,我也不喜欢依赖代码的想法。话虽如此,你只有两个选择。构建自己的自定义元框代码或使用库作为依赖项。关于元框有什么限制呢?您并没有真正说明为什么元框对您无效? - Seth C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接