我的插件中有一些if语句,我想为每个帖子执行。
现在,我们只想说我想在每个帖子中添加“Hello World”
我已经尝试了很多东西,但我似乎无法解决这个问题。
很简单,在我的插件中我有:
RewriteRule ^user/(\w+)/(\w+)$ user.php?id=$1&name=$2
显然我做错了,因为Hello World不怎么样。 有人能指出我正确的方向吗?
以下是我主题的index.php页面上的工作代码: http://pastebin.com/xd1ree8W
我想将if语句放在我的插件中的函数顶部,所以它会为每个帖子加载。
答案 0 :(得分:2)
所以这适用于我在functions.php
我没有修改get_the_ID()
部分,但你可以很容易地使用这样的对象$obj->ID
function everypost_func($obj){
echo 'This is sort of cool';
if (get_post_meta(get_the_ID(), 'other-link', true))
{
$url = get_post_meta(get_the_ID(), 'other-link', true);
$status = 200;
$price = NULL;
//echo "Looks like you've got other-link selected";
}
elseif (get_post_meta(get_the_ID(), 'generic-asin', true))
{
$status = 100;
$asin = get_post_meta(get_the_ID(), 'generic-asin', true);
//echo "Looks like you've got a generic-asin";
if($_COOKIE['countrycode'] == "GB")
{
$reg = "co.uk";
//echo "and we've detected you're in the UK <br>";
}
else
{
$reg = "com";
//echo "and we've detected you're not from the UK <br>";
}
}
else
{
if(($_COOKIE['countrycode'] == "GB") && get_post_meta(get_the_ID(), 'link-uk', true))
{
$asin = get_post_meta(get_the_ID(), 'link-uk', true);
$reg = "co.uk";
$status = 100;
//echo "looks like you're in the UK, and we have a UK link<br>";
}
elseif (get_post_meta(get_the_ID(), 'link-us', true))
{
$asin = get_post_meta(get_the_ID(), 'link-us', true);
$reg = "com";
$status = 100;
//echo "looks like you're not in the UK, but we have a US link for you<br>";
}
elseif (get_post_meta(get_the_ID(), 'link-uk', true)) {
$asin = get_post_meta(get_the_ID(), 'link-uk', true);
$reg = "co.uk";
$status = 100;
//echo "looks like you're not the UK, but we have a UK link<br>";
}
else
{
$status = 404;
//echo "looks like nothing is here for you<br>";
}
}
if($status == 100)
{
$results = get_aws_details($reg, $asin);
$price = $results[0][0];
$url = $results[1][0];
$wishlist = $results[2][0];
//echo "Success";
}
elseif($status == 404)
{
$price = NULL;
$url = get_the_permalink();
$wishlist = NULL;
//echo "404";
}
}
add_action('the_post','everypost_func');
因此,考虑到你是在插件中进行的,它将取决于你构建它的上下文。
OOP中的示例:add_action('the_post',array($this,'everypost_func'));
也许尝试让它在主题文件中工作,即functions.php
然后如果它按预期的那样工作,那么将它移动到你的插件中,并附上所有必要的好东西。
- 将根据OP评论更新
答案 1 :(得分:1)
您已经使用了完美过滤器来添加内容,但是您在过滤功能方面略有错误。
这里你需要在内容中添加“hello word”。波纹管过滤器满足您的要求。
function testing($content){
return $content. "Hello World";
}
add_filter('the_post','testing');
这里Hello world添加了内容的开头。
我希望它对你有用。
答案 2 :(得分:1)
当我阅读标题时,我认为以下代码段可能就是您要找的内容。这假设您选择的主题使用
the_content()
用于呈现帖子内容的功能。在浏览了您的粘贴文件夹之后,我不确定此代码段是否解决了您在粘贴文件夹中放入的代码,但是我将其留在开头,因为它会回答标题,并可能指向正确的方向
add_filter( 'the_content', 'add_my_content' );
function add_my_content( $content ) {
return "Hello World, \n" . $content;
}