如何使用添加过滤器功能获取帖子ID

时间:2012-05-05 作者:Talon

我正在编写一个插件,并试图找出如何根据一些自定义的元信息在文章末尾添加数据。

到目前为止,我已经做到了:

add_filter(\'the_content\', \'AppendMeta\');
这里是“AppendMeta”函数

AppendMeta($content) {
    echo $content; // Echo out post content
    $PersonName = get_post_meta($post->ID, \'PersonName\', true);
    echo \'Person: \' . $PersonName;
}
如果我用帖子的ID替换$post->ID,则该代码可以工作,但我需要它根据用户当前导航的帖子工作。如何将post id作为参数传入$post->ID在这种情况下不起作用,我也不知道为什么。

2 个回复
最合适的回答,由SO网友:Talon 整理而成

没关系,我发现我可以用get_the_ID();.

此函数将返回the_content 滤器函数只声明全局$post 对象并返回其ID。

add_filter(\'the_content\', \'wpse51205_content\')
wpse51205_content($content) {
    echo $content; // Echo out post content
    $PersonName = get_post_meta(get_the_ID(), \'PersonName\', true);
    echo \'Person: \' . $PersonName;
}
如果您不想使用get_the_ID(), 您只需声明$post 使用前对象全局:

add_filter(\'the_content\', \'wpse51205_content\')
wpse51205_content($content) {
    global $post;
    echo $content; // Echo out post content
    $PersonName = get_post_meta($post->ID), \'PersonName\', true);
    echo \'Person: \' . $PersonName;
}

SO网友:Ashfame

the_ID() 只能在循环中使用,否则就不能依赖它。更好地使用$GLOBALS[\'post\'] 函数调用中的对象。

结束

相关推荐

Search options/filters

我正在尝试向侧栏搜索框添加一些复选框选项,similar to this, 用户可以选择是否搜索All Words, Some Word, 或者Entire phrase.我确实在搜索后找到了这个-Wordpress Search Phrases. “句子”选项似乎很有效,但其他选项则不太好。下面的代码是我目前正在处理的,但如果能得到一些帮助使其正常工作,我将不胜感激。非常感谢S(我不想为此使用插件)。<form action=\"<?php bloginfo(\'home\'); ?>