向_Content()中添加自定义的PHP和HTML

时间:2012-08-07 作者:Yavisht Katgara

我正在开发一个关于主题框架的wordpress网站。在我的子主题中,我制作了一个称为资源的全宽页面模板。php

在这个页面模板中,我编写了自定义php代码,其中显示了与特定类别的帖子相关的各种自定义字段。

例如:

<div class="download">
<ul id="portfolio" class="port">
<?php query_posts(array ( \'category_name\' => \'research\'   ,  \'posts_per_page\' => \'-1\' , \'order\'=>\'ASC\')  ); ?>
<?php while (have_posts()) : the_post(); ?>
<li class="<?php foreach((get_the_category()) as $category) { echo $category->category_nicename; echo" ";} ?> resourcelist">
<span class="doctitle"><?php the_field(\'document_title\') ;?> <span class="date"><?php the_field(\'document_date\'); ?></span>  <span class="categry"><?php foreach((get_the_tags()) as $tag) { echo $tag->name; echo" "; } ?></span></span>
<span class="docdes"><?php the_field(\'document_description\') ;?></span>
<span class="docpath"><a title="download" target="_blank" href="<?php the_field(\'document_path\'); ?>">
<img border="0" src="test.png">
</a> </span>


            </li>
            <?php endwhile; ?>
    </ul>

</div>
现在我想做的是将此页面限制为只有已注册的用户。我有一个插件来处理这个问题,例如:页面限制

page restrict的作用是替换通过页面wisiwyg编辑器调用的任何内容the_content() 带有消息“您需要登录”。

页面被阻止,但是我的php代码作为页面模板的一部分执行。

我正试图找到一种方法,将我所有的php代码添加到the_content(); 这样输出也会被消息替换。

我偶然看到这篇文章,它给了我以下代码。

        <?php
        function demo_function( $content ) {

            $someHtml = \'<div class="someClass">\';
            $someHtml .= \'some text or code goes here\';
            $someHtml .= \'</div>\';

            $filteredcontent = $someHtml . $content;

            return $filteredcontent;
        }
        add_filter( \'the_content\', \'demo_function\' );
//the loop goes here        
the_content();
    ?>
这段代码的作用是将上述HTML添加到\\u content()中;因此,下次我阻止页面时,甚至上面的内容也会被阻止。我确实希望这样,但我的php代码不是这个HTML。

我真的很接近破解这个问题,但由于上面的语法将html附加到变量中,因此我无法通过该方法附加这么多行php代码。

请帮帮我。如果您有任何问题,请随时提问。

1 个回复
SO网友:Tribalpixel

我不确定是否理解你的问题,但为什么不在你的函数中使用这个逻辑呢?

if ( is_user_logged_in() ) {
    echo \'Welcome, registered user!\';
    do your stuff PHP and inject in content...
} else {
    return standard content or block it;
}
可能还有额外的测试来限制current_user_can( $capability ), 等等

结束

相关推荐

Delist entries in the_loop

我正在尝试向我的WordPress网络添加一个退市功能。被除名的帖子不会出现在帖子列表中,但如果直接访问,仍然可以看到。我编写了一个插件,帮助编辑在作者和帖子上删除带有自定义元值的条目。因此,在公开列表中显示每篇文章之前,我需要检查两个元数据:delist-post post 元价值和delist-author user 元值。我想注册一个pre_get_posts 限制返回的筛选器get_posts() 通过设置查询的meta_query 所有物是否可以使用POST检查用户元值meta_query? 如