我正在我的网站上创建一个自定义选项页面。其中一个选项是控制主页上的一个框,我试图通过select
菜单
到目前为止,我可以列出所有页面,包括我的自定义帖子类型-我正在尝试的是将自定义帖子类型存档页面作为链接,并在列表中进行某种排序。
例如,选择层次结构应该如下所示:工作-(自定义帖子类型存档)火柴盒-(自定义帖子类型页面)页面-(常规页面)
我的当前代码:
$sitePages= get_posts(array(\'post_type\'=>array(\'page\', \'work\', \'people\'), \'posts_per_page\'=>-1, \'post_status\'=>\'publish\', \'depth\'=> 0));
$wp_cats = array();
foreach ($sitePages as $page_list ) {
$wp_cats[$page_list->ID] = $page_list->post_title;
}
array_unshift($wp_cats, " ");
然后是foreach$wp_cats
回电话。任何帮助都将不胜感激!
*****更新***基于Sven\'s answer ∨∨;
我使用以下代码输出所有内容。
<select name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>">
<option value="">Choose A Page</option>
<?php
$post_types = array( \'page\', \'work\', \'people\' );
$wp_cats = array();
foreach ( $post_types as $post_type ) {
$pages = get_pages( array( \'post_type\'=>$post_type, \'posts_per_page\'=>-1, \'post_status\'=>\'publish\', \'depth\'=> 0 ) );
$obj = get_post_type_object( $post_type );
// output custom post type archive with link
if ( $post_type !== \'page\' ){
echo \'<option value="\' . get_post_type_archive_link( $post_type ) .\'"\';
if (get_option( $value[\'id\'] ) == get_post_type_archive_link( $post_type )) { echo \'selected="selected"\'; }
echo \'>\'. $obj->labels->singular_name . \'</option>\';
}
foreach ( $pages as $page ) {
$wp_cats[$page->ID] = $page->post_title;
// output posts with link
echo \'<option value="\' . get_permalink($page->ID).\'" \';
if (get_option( $value[\'id\'] ) == get_permalink($page->ID)) { echo \'selected="selected"\'; }
echo \'> \'. $page->post_title .\'</option>\';
}
}
?>
</select>