matt
matt

Reputation: 44293

wordpress plugin: query post-ID in plugin?

hey guys, maybe some of you have experience with programming wordpress plugins. I have a probably rather simpel question, but i couldn't find anything on the web.

<?php
/*
Plugin Name: test
*/

function test($content) {

    echo $post_id;
    return $content;
}

add_filter('the_content', 'test');  
?>

I have a simpel plugin that should echo out the unique ID of every post in it's content. So on my frontpage with 10 posts every post should have it's ID echoed out.

Any idea how to achieve that? thank you!

Upvotes: 0

Views: 6785

Answers (3)

Shakti Singh
Shakti Singh

Reputation: 86336

My guess is Use global keyword to access post id in function

And also my guess is return and echo both would not work together in function

function test($content) {
        global $post;
        return $post->ID.'<br>'.$content;
    }

Upvotes: 2

t31os
t31os

Reputation: 2548

Filters should return, not echo.

function test($content) {
    global $post;
    return 'id: ' . $post->ID . '<br />' . $content;
}

In order to look at the post object properties you must bring $post into the scope of the function, that's what this line does..

global $post;

Which then allows the reference to the object's ID, eg.

$post->ID;

See here for help understanding actions and filters.
http://codex.wordpress.org/Plugin_API

Example filter.
http://codex.wordpress.org/Plugin_API#Example

Upvotes: 0

Jan Dragsbaek
Jan Dragsbaek

Reputation: 8101

You're mixing echo and return - that doesnt work. However, try:

function test($content) 
{
    return "id: ".$post_id."<br/>".$content;
}

also, make sure to use lowercase id, as it is case-sensitive

http://codex.wordpress.org/Function_Reference/get_the_ID might be usefull aswell

Upvotes: 1

Related Questions