26

I am trying to retrieve the slug for a tag inside a wordpress post, now its possible to get all tag info using

$tag = wp_get_post_tags($post->ID);

More info on this on the Wordpress Docs

By using this you should get data returned like this...

Array
(
   [0] => stdClass Object
       (
           [term_id] => 4
           [name] => tag2
           [slug] => tag2
           [term_group] => 0
           [term_taxonomy_id] => 4
           [taxonomy] => post_tag
           [description] => 
           [parent] => 0
           [count] => 7
       )

   [1] => stdClass Object
       (
           [term_id] => 7
           [name] => tag5
           [slug] => tag5
           [term_group] => 0
           [term_taxonomy_id] => 7
           [taxonomy] => post_tag
           [description] => 
           [parent] => 0
           [count] => 6
       )

)

Now what I want is the slug for the first item which should be as follows

$tag[0]['slug']

However by doing so I recieve this php error:

Cannot use object of type stdClass as array

Can someone tell me what I'm doing wrong here? and whats the best way to get the slug data

2 Answers 2

57

Note that the array contains objects (instances of stdClass), not other arrays. So the syntax is:

$tag[0]->slug
Sign up to request clarification or add additional context in comments.

5 Comments

Ah, thats exactly what I was looking for. Think I need to go back to php basics
Hi, instead of 'slug', I have '@classId' as the name to be fetched. Getting syntax error at token '@', do you know any work around? Thanks
fyi. I am calling a mysql proc with out parameter, and then doing a select in next query.
@mtk, use $tag[0]->{"@classId"}.
@radu that didn't work. Have asked the same question here. Please see.
3

Another option should be to explicitly cast $tag[0] into an array:

$t = (array)$tag[0];
$t["slug"] = ...

Can't get it to work though

1 Comment

I created a custom walker for my menu in wordpress. Somehow it used both: objects and arrays in one argument. This little peace of code did the trick, didn't know about it.

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.