I am trying to get the slug of a custom taxonomy for the current post that this shortcode is embedded in if the user doesn't define the slug he wants explicitly in the shortcode.

function get_date_posts($params, $content){
        $default_params = array(
            'post_type'     => 'post',
            'order'         => 'asc',
            'orderby'       => 'meta_value',
            'posts_per_page'=> 5,
            'meta_key'      => 'fl_date_picker'

        $terms = get_the_terms( $post->ID, 'calendar_event_type' );
        if ( !empty( $terms ) ){
        $params['slug'] = array_shift( $terms );


This line is causing the error: $params['slug'] = array_shift( $terms );

Catchable fatal error: Object of class stdClass could not be converted to string

How can I get around this? Tried everything to convert this to a string..


You don't specify where exactly the error comes from but I assume your problem is that you assign an object to the slug instead of a string. your code should look like

$t = array_shift( $terms );
$params['slug'] = $t->slug;
  • 1
    Apart from that, $post is also an undefined variable in context, failing $terms. :-) – Pieter Goosen Feb 24 '15 at 5:44
  • $post seems to work – JoaMika Feb 24 '15 at 11:32
  • @JoannaMikalai, you should still add it as a global or as a parameter to the function. It is possible that it works just because some default handling of error condition gives you the correct result – Mark Kaplun Feb 24 '15 at 12:04
  • ok how can i make it to tie to the argument ''post_type' => 'post'' ? – JoaMika Feb 24 '15 at 12:27
  • should I just change this to 'post_type' => $post, ? – JoaMika Feb 24 '15 at 12:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.