自定义字段内容的筛选器挂钩是什么?

时间:2011-12-09 作者:PrivateUser

以下代码隐藏了“The\\u content”输出

add_filter( "the_content", "cp_module_pcontent_post_content" );
function cp_module_pcontent_post_content($content){
        global $post;
        global $cp_module_pcontent_hide;
        if(!in_array($post->ID,(array)$cp_module_pcontent_hide)){
            return $content;
        }
        $c = \'<p>\' . get_option(\'cp_module_pcontent_text_pay\') . \'</p>\';
        $c .= apply_filters(\'cp_module_pcontent_post_content_\'.$post->ID, \'\');
        $c .= \'<form method="post">\';
        $c .= \'<input type="hidden" name="cp_module_pcontent_pay" value="\'.$post->ID.\'" />\';
        $c .= \'<p><input type="submit" value="\'.get_option(\'cp_module_pcontent_text_button\').\'" /></p>\';
        $c .= \'</form>\';
        if(!is_user_logged_in()){
            $c = get_option(\'cp_module_pcontent_text_logout\');
        }
        $c = str_replace(\'%points%\',cp_formatPoints(get_post_meta($post->ID,\'cp_pcontent_points\', 1)),$c);
        return $c;
    }
检查这些屏幕截图。

如果用户未登录,则显示此

enter image description here

如果登录的用户显示如下

enter image description here

仅请注意the_content 输出被隐藏

这是我的问题。我正在使用magic fields插件。它是一个创建自定义字段的插件。

例如,这是我的单曲代码。php文件使用。

    <div class="entry-content">
            <?php the_content(); ?>
    </div>

 <!-- magic fields plugin code starts -->
    <div class="custom-content">
            <?php if (function_exists(\'get_field\')) { 
                    $requirements = get_field(\'requirements_requirements\');
                        if($requirements){  
                            foreach($requirements as $requirement){
                            echo $requirement;
                            } 
                        } 
                    } ?>

    </div>
  <!-- magic fields plugin code ends -->
此处不隐藏Magic fields插件输出
我想隐藏那些Magic fields插件输出,而不是the_content 输出我是说requirements 而不是the_content.

当我将“the\\u content”替换为“the\\u title”时,它会隐藏标题。

比如像这样

添加过滤器(“the\\u title”、“cp\\u module\\u pcontent\\u post\\u content”)//隐藏标题

添加过滤器(“the\\u tags”、“cp\\u module\\u pcontent\\u post\\u content”)//隐藏标记

添加过滤器(“wp\\U列表\\U类别”,“cp\\U模块\\U内容\\U发布内容”)//隐藏类别

添加过滤器(“???????”,“cp\\u module\\u pcontent\\u post\\u content”)//隐藏“魔法场”组

要隐藏这些要求,我需要替换

add_filter( "the_content", "cp_module_pcontent_post_content" );

add_filter( "xxxxxxxx", "cp_module_pcontent_post_content" );
你能告诉我那是什么吗xxxxxxxx?

谢谢

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

好的,我找到答案了。感谢@t31os和his code.

这就是我所做的。

已替换此行

echo $requirement;
使用

echo apply_filters(\'requirement\',\'$requirement\');
然后我又换了第一行

add_filter( "the_content", "cp_module_pcontent_post_content" );
使用

add_filter( "requirement", "cp_module_pcontent_post_content" );
瞧,它现在工作得很好。:)

SO网友:rexposadas

由于自定义字段保存在元表中,因此可以删除此行:

 $c = str_replace(\'%points%\',cp_formatPoints(get_post_meta($post->ID,\'cp_pcontent_points\', 1)),$c);
或者,可以使用布尔值作为参数,以不运行此行代码。

HTH公司

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴