首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建metabox以激活滑块

创建metabox以激活滑块
EN

WordPress Development用户
提问于 2018-02-07 15:25:23
回答 1查看 387关注 0票数 0

我想在Add Post页面上创建一个复选框,以便在激活复选框时启用滑块,在滑块中显示该帖子,我只想编写代码,我不想使用任何插件。

EN

回答 1

WordPress Development用户

发布于 2018-02-07 15:55:24

不要费心使用复选框和metabox,这是有限的:

  • 您只能有一个滑块,并且必须为每个新滑块添加代码以添加一个新复选框
  • 数据作为自定义字段存储在posts中,但是通过post元数据查询帖子非常昂贵和缓慢。

因此,我提出了一种更容易实现和更灵活的替代方案:

使用无层次滑块分类法

这给了你:

  • 如果您想在滑块上扩展免费档案(当然是可选的)
  • A免费UI
  • 查询滑块的帖子现在是超级super快速。这比metabox中的复选框快一个数量级。
  • 随着流量的增加和post数量的增加,查询也会增加。Post元查询不缩放
  • 一个以复选框列表形式的免费用户界面(从技术上讲,它是一个带有复选框的metabox,多么有趣!)
  • 一个滑块管理UI,在posts下面您可以看到所有的滑块,命名它们,添加描述,查看它们有多少个帖子,删除/添加
  • 滑块块!现在您有了slider术语,您可以添加术语元!过渡风格的术语元?过渡速度?如此多的可能性
  • 文章现在可以出现在多个滑块中。

例如,这篇文章出现在一个名为homepage的滑块中,没有奖励该滑块可能出现的位置:

一个帖子甚至可以出现在多个滑块!

如何设置分类法?

您可以在register_taxonomy操作上调用init,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
add_action( 'init', 'create_morteza_slider_tax' );

function create_morteza_slider_tax() {
    register_taxonomy(
        'morteza_slider',
        'post',
        array(
            'label' => __( 'Sliders' ),
            'hierarchical' => false,
            'public' => false
        )
    );
}

我如何为我的滑块取帖子?

您可以在post查询中使用分类法名称作为参数:

代码语言:javascript
代码运行次数:0
运行
复制
$query = new WP_Query( [
    'morteza_slider' => 'homepage' // <-- this is all that's needed
] );

然后用一个标准的post循环跟踪它:

代码语言:javascript
代码运行次数:0
运行
复制
// a standard post loop
if ( $query->have_posts() ) {
    echo 'start slider markup';

    while ( $query->have_posts() ) {
        $query->the_post();
        // TODO: output this post as a slide
    }
    wp_reset_postdata();
    echo 'end slider markup';
}

确保交换各种位元,例如,“开始滑块标记”被替换为您的滑块库所需的任何东西。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/293413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档