允许用户按自定义域过滤帖子

时间:2014-01-29 作者:realph

我正在使用Advanced Custom Fields 插件将自定义字段添加到我的帖子中,但我想知道为用户创建过滤框以过滤帖子的最佳方法是什么。

enter image description here

我一直在用pre_get_posts WordPress中更改元查询的操作如下http://www.website.com/cars?type=saloon,couple,SUV. 但我发现,当我开始使用多个查询时,网站开始挂起,速度非常慢。

有没有人知道有没有更好的方法。我只是希望我的用户能够相对轻松地过滤汽车。我是不是走错了方向?

非常感谢您的帮助。提前感谢!

1 个回复
SO网友:1fixdotio

您是否尝试过使用“自定义分类法”对汽车进行分类?我认为分类法应该是一种更合适的方法。

您可以注册以下汽车品牌:

// Register Custom Taxonomy
function wpse_131586_custom_taxonomy() {

    $labels = array(
        \'name\'                       => _x( \'Brands\', \'Taxonomy General Name\', \'wpse\' ),
        \'singular_name\'              => _x( \'Brand\', \'Taxonomy Singular Name\', \'wpse\' ),
        \'menu_name\'                  => __( \'Car Brands\', \'wpse\' ),
        \'all_items\'                  => __( \'All Items\', \'wpse\' ),
        \'parent_item\'                => __( \'Parent Item\', \'wpse\' ),
        \'parent_item_colon\'          => __( \'Parent Item:\', \'wpse\' ),
        \'new_item_name\'              => __( \'New Item Name\', \'wpse\' ),
        \'add_new_item\'               => __( \'Add New Item\', \'wpse\' ),
        \'edit_item\'                  => __( \'Edit Item\', \'wpse\' ),
        \'update_item\'                => __( \'Update Item\', \'wpse\' ),
        \'separate_items_with_commas\' => __( \'Separate items with commas\', \'wpse\' ),
        \'search_items\'               => __( \'Search Items\', \'wpse\' ),
        \'add_or_remove_items\'        => __( \'Add or remove items\', \'wpse\' ),
        \'choose_from_most_used\'      => __( \'Choose from the most used items\', \'wpse\' ),
        \'not_found\'                  => __( \'Not Found\', \'wpse\' ),
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
    );
    //Change \'cars\' to your post type accordingly
    register_taxonomy( \'car_brand\', \'cars\', $args );

}

// Hook into the \'init\' action
add_action( \'init\', \'wpse_131586_custom_taxonomy\', 0 );
希望您能了解注册汽车类型自定义分类法的想法。

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢

允许用户按自定义域过滤帖子 - 小码农CODE - 行之有效找到问题解决它

允许用户按自定义域过滤帖子

时间:2014-01-29 作者:realph

我正在使用Advanced Custom Fields 插件将自定义字段添加到我的帖子中,但我想知道为用户创建过滤框以过滤帖子的最佳方法是什么。

enter image description here

我一直在用pre_get_posts WordPress中更改元查询的操作如下http://www.website.com/cars?type=saloon,couple,SUV. 但我发现,当我开始使用多个查询时,网站开始挂起,速度非常慢。

有没有人知道有没有更好的方法。我只是希望我的用户能够相对轻松地过滤汽车。我是不是走错了方向?

非常感谢您的帮助。提前感谢!

1 个回复
SO网友:1fixdotio

您是否尝试过使用“自定义分类法”对汽车进行分类?我认为分类法应该是一种更合适的方法。

您可以注册以下汽车品牌:

// Register Custom Taxonomy
function wpse_131586_custom_taxonomy() {

    $labels = array(
        \'name\'                       => _x( \'Brands\', \'Taxonomy General Name\', \'wpse\' ),
        \'singular_name\'              => _x( \'Brand\', \'Taxonomy Singular Name\', \'wpse\' ),
        \'menu_name\'                  => __( \'Car Brands\', \'wpse\' ),
        \'all_items\'                  => __( \'All Items\', \'wpse\' ),
        \'parent_item\'                => __( \'Parent Item\', \'wpse\' ),
        \'parent_item_colon\'          => __( \'Parent Item:\', \'wpse\' ),
        \'new_item_name\'              => __( \'New Item Name\', \'wpse\' ),
        \'add_new_item\'               => __( \'Add New Item\', \'wpse\' ),
        \'edit_item\'                  => __( \'Edit Item\', \'wpse\' ),
        \'update_item\'                => __( \'Update Item\', \'wpse\' ),
        \'separate_items_with_commas\' => __( \'Separate items with commas\', \'wpse\' ),
        \'search_items\'               => __( \'Search Items\', \'wpse\' ),
        \'add_or_remove_items\'        => __( \'Add or remove items\', \'wpse\' ),
        \'choose_from_most_used\'      => __( \'Choose from the most used items\', \'wpse\' ),
        \'not_found\'                  => __( \'Not Found\', \'wpse\' ),
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true,
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
    );
    //Change \'cars\' to your post type accordingly
    register_taxonomy( \'car_brand\', \'cars\', $args );

}

// Hook into the \'init\' action
add_action( \'init\', \'wpse_131586_custom_taxonomy\', 0 );
希望您能了解注册汽车类型自定义分类法的想法。

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes