I am trying to get Pages, Posts and Custom Post Types In WordPress website but it is showing some other things in the list.
My Code:
<?php $types = get_post_types( ['public' => true ], 'objects' );
foreach ( $types as $type ) {
if ( isset( $type->labels->name) ) { ?>
<?php echo $type->labels->name ?>
<br>
<?php }
} ?>
In this, I am getting:
Posts
Pages
Media
My Templates
Locations
But I only want Pages, Posts and Locations (Locations is the Custom Post Type).
Any help is much appreciated.
I am trying to get Pages, Posts and Custom Post Types In WordPress website but it is showing some other things in the list.
My Code:
<?php $types = get_post_types( ['public' => true ], 'objects' );
foreach ( $types as $type ) {
if ( isset( $type->labels->name) ) { ?>
<?php echo $type->labels->name ?>
<br>
<?php }
} ?>
In this, I am getting:
Posts
Pages
Media
My Templates
Locations
But I only want Pages, Posts and Locations (Locations is the Custom Post Type).
Any help is much appreciated.
Share Improve this question asked Jan 8, 2021 at 13:54 Rahul KumarRahul Kumar 2074 silver badges20 bronze badges 4 |2 Answers
Reset to default 5You can make an array of the post types you don't want and then check in_array()
to see if they match before you output anything with them.
<?php
//You'll want to get at the actual name for My Templates.
//My attempt is just a guess.
$types_array = array( 'attachment' , 'elementor_library' );
$types = get_post_types( ['public' => true ], 'objects' );
foreach ( $types as $type ) {
if( !in_array( $type->name, $types_array )) {
if ( isset( $type->labels->name) ) {
echo $type->labels->name . '<br>';
}
}
}
?>
I tried this and got the solution:
<?php
$types = get_post_types( ['public' => true ], 'objects' );
$exclude = array( 'attachment' , 'elementor_library' );
foreach ( $types as $type ) {
if( !in_array( $type->name, $exclude )) {
if ( isset( $type->labels->name) ) {
echo $type->labels->name . '<br>';
}
}
}
?>
You are use this or the above one also.
In this, You will get:
Pages
Posts
Custom Post Types
attachment
in the database. I don't know whatMy Templates
is though, knowing more information about each post type would help, but there's a good chance that it's being added by a 3rd party plugin – Tom J Nowell ♦ Commented Jan 8, 2021 at 14:24