如何向wordpress循环添加内容?

时间:2015-05-14 17:14:44

标签: php wordpress

我的插件中有一些if语句,我想为每个帖子执行。

现在,我们只想说我想在每个帖子中添加“Hello World”

我已经尝试了很多东西,但我似乎无法解决这个问题。

很简单,在我的插件中我有:

 RewriteRule ^user/(\w+)/(\w+)$ user.php?id=$1&name=$2

显然我做错了,因为Hello World不怎么样。 有人能指出我正确的方向吗?

以下是我主题的index.php页面上的工作代码: http://pastebin.com/xd1ree8W

我想将if语句放在我的插件中的函数顶部,所以它会为每个帖子加载。

3 个答案:

答案 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;
}