0

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 );
        }

//truncated

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..

1 Answer 1

2

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;
8
  • 1
    Apart from that, $post is also an undefined variable in context, failing $terms. :-) Commented Feb 24, 2015 at 5:44
  • $post seems to work Commented Feb 24, 2015 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 Commented Feb 24, 2015 at 12:04
  • ok how can i make it to tie to the argument ''post_type' => 'post'' ? Commented Feb 24, 2015 at 12:27
  • should I just change this to 'post_type' => $post, ? Commented Feb 24, 2015 at 12:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.