使用Get_the_Content的插件导致<!--More-->标记出现问题

时间:2014-01-05 作者:Syrehn

我正在测试Woothemes“我们的团队”插件,看看它在将来的项目中是如何工作的。

该插件在CPT中为团队成员使用了一个短代码,允许用户在页面上显示成员。

我遇到的问题是,由shortcode输出的内容不符合<!--more--> 标签我想是因为woothemes-our-team-template.php 文件位于196行,它正在使用get_the_content 如下所示:

$content = apply_filters( \'woothemes_our_team_content\', wpautop( get_the_content() ), $post );

似乎还有一个过滤器应该能够连接到名为“woothemes\\u our\\u team\\u content”的内容中,但无论我尝试向我的函数中添加什么。php我无法让它认识到<!--more--> 标签我所有的努力都只是删除了所有的内容。

本质上,我想连接到过滤器,让它识别<!--more--> 标记,然后将“阅读更多”更改为“阅读完整简历…”。

有人对实现这一目标的最佳方法有什么建议吗?

提前感谢!

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

显示完整内容和摘要之间的逻辑分岔(这是从post开始到more标记的部分)由$more 全局变量。这取决于其他全球性的东西等等,重要的是0 当你想要的时候。很可能是因为您在上下文中运行它,而正常循环也不会将其设置为零。

像这样的方法应该会奏效:

add_filter( \'woothemes_our_team_content\', function () {
    global $more;
    $real_more = $more;
    $more      = 0;
    $output    = wpautop( get_the_content() );
    $more      = $real_more;

    return $output;
} );
你可以在那里使用link,或者the_content_more_link 自定义它。

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。