wordpress - Wordpress - wp_query 中的动态自定义帖子类型
问题描述
我们都知道,在创建新的自定义帖子类型时,如果我们想查询该特定自定义帖子类型的数据库,我们必须在其中指定名称:
一种自定义帖子类型:
'post_type' => 'NAMECPT_ONE',
两个或多个自定义帖子类型
'post_type' => array('NAMECPT_ONE, NAMECPT_TWO'),
现在我想知道是否存在一种方法来创建新的自定义帖子类型,而不是通过添加来修改所有查询,NAMECPT_THREE
可以拉出整个自定义帖子类型列表并将其动态插入post_type
这是可能的?
方法创建新cpt:
/*
* CREZIONE CUSTOM POST TYPE - SUITE
*/
add_action('init', 'crea_eventi_suite');
function crea_eventi_suite() {
$labels = array(
'name' => __('Suite' , 'suite-plugin'),
'singular_name' => __('Suite' , 'suite-plugin'),
'add_new' => __('Aggiungi Evento', 'suite-plugin'),
'add_new_item' => __('Aggiungi Nuovo Evento' , 'suite-plugin'),
'edit_item' => __('Modifica Evento', 'suite-plugin'),
'new_item' => __('Nuovo Evento', 'suite-plugin'),
'all_items' => __('Tutti gli eventi Suite', 'suite-plugin'),
'view_item' => __('Vedi Eventi Suite' , 'suite-plugin'),
'search_items' => __('Cerca Evento Suite' , 'suite-plugin'),
'not_found' => __('Evento Non Trovato', 'suite-plugin'),
'not_found_in_trash' => __('Evento Non Trovato nel cestino', 'suite-plugin'),
);
$args = array(
'labels' => $labels,
'public' => true,
'rewrite' => array('slug' => 'eventi-suite'),
'has_archive' => true,
'hierarchical' => true,
'menu_position' => 22,
'menu_icon' => 'dashicons-welcome-write-blog',
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'page-attributes'
),
);
register_post_type('eventi-suite', $args);
}
解决方案
你可以这样使用
/*
* CREZIONE CUSTOM POST TYPE - SUITE
*/
add_action('init', 'crea_eventi_suite');
function crea_eventi_suite() {
$labels = array(
'name' => __('Suite' , 'suite-plugin'),
'singular_name' => __('Suite' , 'suite-plugin'),
'add_new' => __('Aggiungi Evento', 'suite-plugin'),
'add_new_item' => __('Aggiungi Nuovo Evento' , 'suite-plugin'),
'edit_item' => __('Modifica Evento', 'suite-plugin'),
'new_item' => __('Nuovo Evento', 'suite-plugin'),
'all_items' => __('Tutti gli eventi Suite', 'suite-plugin'),
'view_item' => __('Vedi Eventi Suite' , 'suite-plugin'),
'search_items' => __('Cerca Evento Suite' , 'suite-plugin'),
'not_found' => __('Evento Non Trovato', 'suite-plugin'),
'not_found_in_trash' => __('Evento Non Trovato nel cestino', 'suite-plugin'),
);
$args = array(
'labels' => $labels,
'public' => true,
'rewrite' => array('slug' => 'eventi-suite'),
'has_archive' => true,
'hierarchical' => true,
'menu_position' => 22,
'menu_icon' => 'dashicons-welcome-write-blog',
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'page-attributes'
),
);
update_option('customer_postquery',get_option('customer_postquery')+',new-post_type');
register_post_type('eventi-suite', $args);
}
现在,当您想显示帖子时,可以像这样使用
$args = array(
'post_type' => get_option('customer_postquery'),
'post_status' => 'publish',
'posts_per_page' => 8,
‘orderby’ => ‘title’,
‘order’ => ‘ASC’,
);
$loop = new WP_Query( $args );
推荐阅读
- c# - Dotnet restore 为 NuGet 包提供 301 错误
- angular - 如何禁用 Handsontable 热表正文中第一行的第一个正文字体样式?
- r - 关于安装 igraph 和其他程序的一般问题
- java - Is it discouraged to use if in java streams?
- python - QT6 库中的属性“qRegisterResourceData”和“qUnregisterResourceData”
- c - 在 for 循环中 Scanf 的问题
- css - 在 Next.js 12 中使用带有 SCSS 的 Bootstrap
- wordpress - 使用 Wordpress 的 API 更新 postmeta 后如何正确触发 save_post?
- swift - 致命错误:字符串索引越界 Swift
- yaml - 使用 Yaml folded > string 表示 A JSON 字符串会导致添加意外的换行符