考虑一下:我有一个自定义的帖子类型“公文包”,这些帖子或“公文包项目”都有几个类别,如:“摄影”、“概念”、“品牌”、“clientA”、“clientB”等。
现在,我想构建一个定制的后端解决方案,让用户创建一个“特殊类别”池,我最终想用它创建一个包含至少有一个类别的每个“公文包项目”的查询。
例如:我有以下类别的投资组合项目:
我想为后端创建的解决方案应该允许用户创建一个类别数组,在其中可以从链接到公文包项目的每个类别中进行选择。
因此,如果用户在此解决方案中添加了:“clientA”和“clientB”,那么我希望查询返回“Item1”&;“项目2”。
我该如何为用户创建一个工具,让他们填写一个类别数组,以便以后定义查询?
我想我需要创建一个自定义菜单页面,列出链接到帖子的所有类别,然后通过复选标记创建类别数组。但我不确定如何创建和存储此数组。
我的实际插件基于Pabamato的回答:
add_action( \'admin_menu\', \'show_specific_cats\' );
function show_specific_cats() {
add_menu_page(\'Kies de categories\', \'Manage categories\', \'manage_options\', \'show-spec-cats\', \'category_options\');
}
function category_options() {
if ( !current_user_can( \'manage_options\' ) ) {
wp_die( __( \'You do not have sufficient permissions to access this page.\' ) );
}
$categories = get_terms( \'category\', \'orderby=count&hide_empty=0\' );
if($_POST) {
$theCats = [];
foreach($_POST as $key => $value) {
array_push($theCats , $value);
}
update_option( \'show_these_cats\', $_POST );
}
$showTheseCats = get_option(\'show_these_cats\');
echo \'<form method="post">\';
echo \'<input type="hidden" name="empty" value="0" />\';
echo \'<ul>\';
foreach($categories as $key => $value){
echo \'<li>\'.
\'<input type="checkbox" name="checkbox[]"\';
if($showTheseCats[\'checkbox\']){
if(in_array($value->term_id, $showTheseCats[\'checkbox\'])) {
echo \'checked\';
}
}
echo
\' value="\'.
$value->term_id.
\'">\'.
$value->name.
\'</li>\';
}
echo \'</ul>\';
echo \'<input type="submit" value="Opslaan">\';
echo \'</form>\';
}
可以通过自定义选项调用类别数组
show_these_cats
.
我在页面上的查询如下:
$showTheseCats = get_option(\'show_these_cats\');
if($showTheseCats[checkbox]){
$args = \'cat=\'. implode(\', \', $showTheseCats[checkbox]).\'\';
query_posts( $args );
while ( have_posts() ) : the_post();
echo \'<li>\';
the_title();
echo \'</li>\';
endwhile;
wp_reset_query();
}