Custom taxonomy list in WordPress - wordpress

I just registered following code in my function
add_action( 'init', 'create_resources_taxonomies', 0 );
function create_resources_taxonomies() {
$labels = array(
'name' => _x( 'cat2', 'taxonomy general name' ),
'singular_name' => _x( 'cat2', 'taxonomy singular name' ),
'search_items' => __( 'Search category' ),
'all_items' => __( 'All category' ),
'parent_item' => __( 'Parent category' ),
'parent_item_colon' => __( 'Parent category:' ),
'edit_item' => __( 'Edit category' ),
'update_item' => __( 'Update Category' ),
'add_new_item' => __( 'Add New Category' ),
'new_item_name' => __( 'New category Name' ),
'menu_name' => __( 'genre' ),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
);
register_taxonomy( 'genre', array( 'resources' ), $args );
}
and i want to get category list in my sidebar, so i added following code in my sidebar
<?php
$taxonomy = 'genre';
$orderby = 'name';
$show_count = 0; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 1; // 1 for yes, 0 for no
$title = '';
$args = array(
'taxonomy' => $taxonomy,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
But i just get "No categories" text. What is wrong with my code?

Your code looks correct, I guess your categories are empty! Am i correct? if yes, add the following code to your last array section before 'title_li'
'hide_empty' => 0,
So your code should be like this
$args = array(
'taxonomy' => $taxonomy,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'hide_empty' => 0,
'title_li' => $title

Related

wordpress - query custom post type by category slug

I'm trying to query a custom post type by its category slug, but its not working at all, it always return blank - like no results
my custom post type definitions:
add_action( 'init', 'custom_post_albuns' );
// The custom function to register a movie post type
function custom_post_albuns() {
// Set the labels, this variable is used in the $args array
$labels = array(
'name' => __( 'Albuns' ),
'singular_name' => __( 'Album' ),
'add_new' => __( 'Add New Album' ),
'add_new_item' => __( 'Add New Album' ),
'edit_item' => __( 'Edit Album' ),
'new_item' => __( 'New Album' ),
'all_items' => __( 'All Albuns' ),
'view_item' => __( 'View Album' ),
'search_items' => __( 'Search Albuns' ),
'featured_image' => 'Featured Image',
'set_featured_image' => 'Add Featured Image'
);
// The arguments for our post type, to be entered as parameter 2 of register_post_type()
$args = array(
'labels' => $labels,
'description' => 'm6 Records Albuns',
'public' => true,
'menu_position' => 6,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
'has_archive' => true,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-album',
'query_var' => 'album'
);
// Call the actual WordPress function
// Parameter 1 is a name for the post type
// Parameter 2 is the $args array
register_post_type( 'album', $args);
}
add_action( 'init', 'create_album_taxonomies', 0 );
function create_album_taxonomies() {
$labels = array(
'name' => _x( 'Categories', 'taxonomy general name' ),
'singular_name' => _x( 'Category', 'taxonomy singular name' ),
'search_items' => __( 'Search Categories' ),
'all_items' => __( 'All Categories' ),
'parent_item' => __( 'Parent Category' ),
'parent_item_colon' => __( 'Parent Category:' ),
'edit_item' => __( 'Edit Category' ),
'update_item' => __( 'Update Category' ),
'add_new_item' => __( 'Add New Category' ),
'new_item_name' => __( 'New Category Name' ),
'menu_name' => __( 'Categories' ),
);
$args = array(
'hierarchical' => true, // Set this to 'false' for non-hierarchical taxonomy (like tags)
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'albuns' ),
);
register_taxonomy( 'albuns_categories', array( 'album' ), $args );
}
and my query:
$argsPost = array(
'post_type'=>'album',
'orderby'=>'date',
'order' => 'DESC',
'posts_per_page'=>'4',
'tax_query' => array(
array(
'taxonomy' => 'albuns_categories',
'field' => 'slug',
'terms' => array( 'ANYTERM' )
)
)
);
and I can't bring a list of albuns (if I remove the tax_query part, it returns to me all the "albuns" custom post type).
Do someone have any ideias???
Thanks!!
You can try
$argsPost = array(
'post_type'=>'album',
'orderby'=>'date',
'order' => 'DESC',
'posts_per_page'=>'4',
'tax_query' => array(
array(
'taxonomy' => 'albuns_categories',
'field' => 'slug',
'terms' => array( 'ANYTERM' ),
'operator' => 'IN'
)
)
);

WP Bakery - Displaying taxonomy in grid

I have a taxonomy which I have created as follows:
function understrap_custom_taxonomies() {
$post_types_index = array('cs_publications', 'cs_projects');
$taxs = array(
'cs_themes' => array(
'menu_title' => 'Themes',
'plural' => 'Themes',
'singular' => 'Theme',
'hierarchical' => true,
'slug' => 'theme',
'post_type' => array( 'post', 'cs_publications', 'cs_projects', 'cs_events')
)
);
foreach( $taxs as $tax => $args ) {
$labels = array(
'name' => _x( $args['plural'], 'taxonomy general name' ),
'singular_name' => _x( $args['singular'], 'taxonomy singular name' ),
'search_items' => __( 'Search '.$args['plural'] ),
'all_items' => __( 'All '.$args['plural'] ),
'parent_item' => __( 'Parent '.$args['plural'] ),
'parent_item_colon' => __( 'Parent '.$args['singular'].':' ),
'edit_item' => __( 'Edit '.$args['singular'] ),
'update_item' => __( 'Update '.$args['singular'] ),
'add_new_item' => __( 'Add New '.$args['singular'] ),
'new_item_name' => __( 'New '.$args['singular'].' Name' ),
'menu_name' => __( $args['menu_title'] )
);
$tax_args = array(
'hierarchical' => $args['hierarchical'],
'labels' => $labels,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'show_in_rest' => true,
'with_front' => false,
'rewrite' => array( 'slug' => $args['slug'] ),
);
register_taxonomy( $tax, $args['post_type'], $tax_args );
}
}
add_action('init', 'understrap_custom_taxonomies');
I am now trying to get the value for "cs_themes" to display in a WP Bakery grid using the custom field element:
However no matter whether I type "cs_themes", "taxonomy_cs_themes" or any other logical combination, it doesn't seem to pull through the values. Any advice would be much appreciated.

How to filter custom posts with same taxonomy term as the current post?

I am trying to filter the custom posts with my custom taxonomy called "events". The code I have should check the "events" taxonomy's name for the current post and then only list the posts within the same group.
I have checked the codex page https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters but was unable to get this to work. Does anyone have any advice?
$post_terms = wp_get_object_terms($post->ID, 'events');
$post_term = $post_terms[0]->name;
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'posts_per_page' => -1,
'post__not_in' => array(124470, 124455),
'tax_query' => array(
array(
'taxonomy' => 'events',
'field' => 'name',
'terms' => $post_term,
),
),
);
update, added code below as requested.
/* custom taxonomies */
function my_custom_events_taxonomies(){
register_taxonomy(
'events',
'events',
array(
'label' => 'Events type',
'rewrite' => array( 'slug' => 'Events'),
'hierarchical' => false,
'custom-fields' => true,
)
);
}
add_action ( 'init', 'my_custom_events_taxonomies');
custom post type below:
function events_post_type() {
$labels = array(
'name' => _x( 'Events', 'Post Type General Name', 'remco' ),
'singular_name' => _x( 'Events', 'Post Type Singular Name', 'remco' ),
'menu_name' => __( 'Events', 'remco' ),
'name_admin_bar' => __( 'Events', 'remco' ),
'archives' => __( 'Events Archives', 'remco' ),
'parent_item_colon' => __( 'Parent Events:', 'remco' ),
'all_items' => __( 'All Events', 'remco' ),
'add_new_item' => __( 'Add New Events', 'remco' ),
'add_new' => __( 'Add New', 'remco' ),
'new_item' => __( 'New Item', 'remco' ),
'edit_item' => __( 'Edit Item', 'remco' ),
'update_item' => __( 'Update Item', 'remco' ),
'view_item' => __( 'View Item', 'remco' ),
'search_items' => __( 'Search Item', 'remco' ),
'not_found' => __( 'Not found', 'remco' ),
'not_found_in_trash' => __( 'Not found in Trash', 'remco' ),
'insert_into_item' => __( 'Insert into item', 'remco' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'remco' ),
'items_list' => __( 'Items list', 'remco' ),
'items_list_navigation' => __( 'Items list navigation', 'remco' ),
'filter_items_list' => __( 'Filter items list', 'remco' ),
);
$args = array(
'label' => __( 'Events', 'remco' ),
'description' => __( 'Events', 'remco' ),
'labels' => $labels,
'supports' => array( 'title', 'editor','revisions', 'thumbnail', 'custom-fields' ),
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 9,
'menu_icon' => 'dashicons-calendar' ,
'show_in_admin_bar' => true,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
'taxonomies' => 'events'
);
register_post_type( 'Events', $args );
}
add_action( 'init', 'events_post_type', 0 );
The standard way to get posts from custom post type with custom texonomies is
$args = array('post_type' => 'custom_post_type',
'tax_query' => array(
array(
'taxonomy' => 'custom_taxonomy',
'field' => 'slug',
'terms' => $custom_term->slug,
),
),
);
$loop = new WP_Query($args);

wp_query custom post types

I dont know if I just can t see the forrest for the tress, but I need some help. I have a custom post type "business" with 2 related custom taxonomies, business_category and business_tags. On the custom archive template I have a custom search form:
<form class="search-form" role="search" method="get" action="<?php echo home_url( '/' ); ?>">
<div class="form-group">
<label for="search-input"><i class="fa fa-search" aria-hidden="true"></i><span class="screen-reader-text">Search icons</span></label>
<input type="hidden" name="post_type" value="wego_business" />
<input type="search" class="form-control search-field" placeholder="Search the Directory" value="" name="s" id="s">
</div>
</form>
This then display on a custom search template. I can not get results for the business_tags
global $wp_query;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$tag = get_search_query();
$args = array (
's' => $s,
'order' => 'ASC',
'orderby' => 'name',
'tax_query' => array(
array(
'taxonomy' => 'business_tags',
'field' => 'slug',
'terms' => $tag,
),
),
'paged' => $paged
);
AM I missing something obvious?
Here is the cpt creation:
$labels = array(
'name' => _x( 'Business', 'Post Type General Name', 'wego_fran' ),
'singular_name' => _x( 'Business', 'Post Type Singular Name', 'wego_fran' ),
'menu_name' => __( 'Business', 'wego_fran' ),
'parent_item_colon' => __( 'Parent Business:', 'wego_fran' ),
'all_items' => __( 'All Business', 'wego_fran' ),
'view_item' => __( 'View Business', 'wego_fran' ),
'add_new_item' => __( 'Add New Business', 'wego_fran' ),
'add_new' => __( 'Add New', 'wego_fran' ),
'edit_item' => __( 'Edit Business', 'wego_fran' ),
'update_item' => __( 'Update Business', 'wego_fran' ),
'search_items' => __( 'Search Business', 'wego_fran' ),
'not_found' => __( 'Not found', 'wego_fran' ),
'not_found_in_trash' => __( 'Not found in Trash', 'wego_fran' ),
);
$args = array(
'label' => __( 'Business', 'wego_fran' ),
'description' => __( 'Business', 'wego_fran' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes' ),
'taxonomies' => array( 'business_category', 'business_tags' ),
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 20,
'menu_icon' => 'dashicons-admin-home',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
'rewrite' => array( 'slug' => 'business' ),
);
register_post_type( 'wego_business', $args );
<?php
global $wp_query;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$tag = get_search_query();
$args = array (
'post_type' => 'wego_business',
's' => $s,
'order' => 'ASC',
'orderby' => 'name',
'tax_query' => array(
array(
'taxonomy' => 'business_tags',
'field' => 'slug',
'terms' => $tag,
),
),
'paged' => $paged
);
// The Query
$wp_query = new WP_Query( $args );
$count = $wp_query->found_posts;
?>
the custom search template is search-wego_business.php using the above query
Perhaps you're missing the post_type field and you can also search inside the name field. A refactor would look like:
$args = array (
'post_type' => 'business',
's' => $s,
'order' => 'ASC',
'orderby' => 'name',
'tax_query' => array(
array(
'taxonomy' => 'business_tags',
'field' => 'name',
'terms' => $tag,
),
),
'paged' => $paged
);
Else, I would need more details - like: your taxonomy and custom post type declaration and the full source of your archive (at least the part that builds the search query).

How to create custom post types in WordPress?

I want to know the procedure of how to create custom post types with WordPress. I will be thankful if anyone help me with complete procedure of code and plugins. I will also be writing a blog post regarding this issue and I need help from top contributors of Stackoverflow.
Add code similar to this to your functions.php
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'your_custom_name',
array(
'labels' => array(
'name' => __( 'Custom_names' ),
'singular_name' => __( 'Custom_names' )
),
'public' => true,
'has_archive' => true,
)
);
}
after it you can see a another option in your dashbooard left bar to add custom post.
see more about Post Types
<?php
require_once 'wp-load.php'; //path of wp-load.php
$name = 'my post';
$content = 'dummy Content here';
$featured_image = 'fullimage url.jpg'; //pass here full image url
$post_data = array(
'post_title' => wp_strip_all_tags( $name ),
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'post',
'post_author' => 1,
'post_category' => array(1,2),
'page_template' => ''
);
$post_id = wp_insert_post( $post_data, $error_obj );
// for custom field
//add_post_meta( $post_id, 'post_date', 'Dec 5, 2018' ); // second parameter is your custom field name, 3rd parameter is value
generate_Featured_Image($featured_image, $post_id );
function generate_Featured_Image( $image_url, $post_id ){
$upload_dir = wp_upload_dir();
$image_data = file_get_contents($image_url);
$filename = basename($image_url);
if(wp_mkdir_p($upload_dir['path']))
$file = $upload_dir['path'] . '/' . $filename;
else
$file = $upload_dir['basedir'] . '/' . $filename;
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
$res1= wp_update_attachment_metadata( $attach_id, $attach_data );
$res2= set_post_thumbnail( $post_id, $attach_id );
echo 'post created...';
}
?>
function my_custom_event() {
$labels = array(
'name' => _x( 'Events', 'post type general name' ),
'singular_name' => _x( 'Events', 'post type singular name' ),
'add_new' => _x( 'Add New', 'Events' ),
'add_new_item' => __( 'Add New Events' ),
'edit_item' => __( 'Edit Events' ),
'new_item' => __( 'New Events' ),
'all_items' => __( 'All Events' ),
'view_item' => __( 'View Events' ),
'search_items' => __( 'Search Events' ),
'not_found' => __( 'No Events found' ),
'not_found_in_trash' => __( 'No Events found in the Trash' ),
'parent_item_colon' => '',
'menu_name' => 'Events'
);
$args = array(
'labels' => $labels,
'description' => 'Events',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'menu_position' => 5,
'supports' => array( 'title' , 'thumbnail', 'editor', 'page-attributes'),
'has_archive' => true,
);
register_post_type( 'event', $args );
}
add_action( 'init', 'my_custom_event' );
## This is my full working code for creating custom post types ##
function slide_init()
{
$labels = array(
'name' => 'Slider',
'singular_name' => 'Slider',
'menu_name' => 'Slider',
'name_admin_bar' => 'Slider',
'add_new' => 'Add New Slider',
'add_new_item' => 'Add New Slider',
'new_item' => 'New Slider',
'edit_item' => 'Edit Slider',
'view_item' => 'View Slider',
'all_items' => 'All Slider Images',
'search items' => 'Search Slider',
'parent_item_colon' => 'Parent Slider',
'not_found' => 'No Slider Found',
'not_found_in_trash' => 'No Slider Found In Trash',
);
$args = array(
'labels' => $labels,
'public' => true,
'publicaly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'Slider' ),
'capability_type' => 'post',
'has_archive' => true,
'Hierarchical' => false,
'menu_position' => null,
'menu_icon' => 'dashicons-format-image',
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments','hierarchical','trackbacks','custom-fields','revisions','page-attributes'),
'taxonomies' =>array('category'),
);
register_post_type('Slider',$args);
register_taxonomy('Slider_category','Slider',array('hierarchical' => true, 'label' => 'Category', 'query_var' => true, 'rewrite' => array('slug' => 'slider-category')));
}
add_action('init','slide_init');
/** Meet the team custom post
You can use below WordPress script to create custom post type without any plugins */
$labels = array(
'name' => _x('Team', 'Team', 'Team') ,
'singular_name' => _x('Team', 'Team', 'rjis') ,
'menu_name' => _x('Meet the Team', 'admin menu', 'rjis') ,
'name_admin_bar' => _x('Team', 'add new on admin bar', 'rjis') ,
'add_new' => _x('Add New', 'Team', 'rjis') ,
'add_new_item' => __('Add New Team', 'rjis') ,
'new_item' => __('New Team', 'rjis') ,
'edit_item' => __('Edit Team', 'rjis') ,
'view_item' => __('View Team', 'rjis') ,
'all_items' => __('All Team Members', 'rjis') ,
'search_items' => __('Search Team', 'rjis') ,
'parent_item_colon' => __('Parent Team:', 'rjis') ,
'not_found' => __('No Team found.', 'rjis') ,
'not_found_in_trash' => __('No Team found in Trash.', 'rjis')
);
$args = array(
'labels' => $labels,
'description' => __('Description.', 'Meet the team') ,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array(
'slug' => 'team'
) ,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'menu_position' => null,
'supports' => array(
'title',
'editor',
'author',
'thumbnail',
'excerpt'
) ,
'menu_icon' => PLUGIN_URL . "images/team.png"
);
register_post_type('team', $args);
Here Career word is Used for Given name for the PostType. You can make multiple post type just change Carrer Name.
// career CUSTOM POST
$labels = array(
'name' => 'career',
'singular_name' => 'career',
'add_new' => 'Add career',
'add_new_item' => 'Add New career',
'edit_item' => 'Edit career',
'new_item' => 'New career',
'all_items' => 'All career',
'view_item' => 'View career',
'search_items' => 'Search career',
'not_found' => 'No career found',
'not_found_in_trash' => 'No career found in Trash',
'parent_item_colon' => '',
'menu_name' => 'career'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'taxonomies' => array('career_cat'),
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'custom-fields'
)
);
register_post_type('career', $args);
$labels = array(
'name' => 'career_Category',
'singular_name' => 'career',
'search_items' => 'Search career_Categories',
'all_items' => 'All career_Categories',
'parent_item' => 'Parent career_Category',
'parent_item_colon' => 'Parent career_Category:',
'edit_item' => 'Edit career_Category',
'update_item' => 'Update career_Category',
'add_new_item' => 'Add New career_Category',
'new_item_name' => 'New Category Name',
'menu_name' => 'career_Categories'
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'rewrite' => false,
'capabilities' => array('manage_terms')
);
register_taxonomy('career_cat', array('career'), $args);
add_theme_support('post-thumbnails', array('career'));
set_post_thumbnail_size(100, 100);
"Portfolio" name Used for the PostType. You can Add portfolio-category remove and also add tags.
function ag_custom_post_type_init() {
$ag_cust_post_argu = '';
$ag_cust_post_argu = array(
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'query_var' => true,
'has_archive' => true,
'hierarchical' => true,
'menu_position' => null,
'menu_icon' => null,
'supports' => array( 'title', 'editor' )
);
register_post_type(
'portfolio', array(
'labels' => array('name' => __( 'Portfolio' ), 'singular_name' => __( 'portfolio' ) ),
'hierarchical' => true,
'public' => true,
'rewrite' => array(
'slug' => 'portfolio',
'with_front' => false,
),
'menu_icon' => 'dashicons-admin-site',
'has_archive' => true,
'parent' => 'Portfolio',
'supports' => array('page-attributes','title', 'editor', 'thumbnail', 'comments', 'excerpt'),
$ag_cust_post_argu,
)
);
}
add_action( 'init', 'ag_custom_post_type_init' );
function custom_post_type_tax_init_portfolio() {
register_taxonomy(
'portfolio-category',
'portfolio',
array(
'label' => __( 'Categories' ),
'hierarchical' => true,
'rewrite' => array(
'slug' => 'portfolio-category',
'with_front' => false,
),
)
);
}
add_action( 'init', 'custom_post_type_tax_init_portfolio' );
function custom_post_type_tag_init_portfolio() {
register_taxonomy('portfolio_tag', 'portfolio', array(
'hierarchical' => false,
'label' => "Tags",
'singular_name' => "tag",
'rewrite' => array(
'slug' => 'portfolio-tag',
'with_front' => false,
),
'query_var' => true
)
);
}
add_action( 'init', 'custom_post_type_tag_init_portfolio' );

Resources