【问题标题】:wordpress post the_content filterwordpress 发布 the_content 过滤器
【发布时间】:2013-01-19 16:25:18
【问题描述】:

我想要添加到我的帖子内容<!--nextpage-->标签的写函数,我写这个函数:

<?php
function output($content) {
$output = $content.'<!--nextpage-->'.$content;

return $output;
}

add_filter('the_content','output');

?>

功能添加&lt;!--nextpage--&gt;标签,但是当我显示帖子时这个标签不起作用,它就像html cmets,也许是解决这个问题的一些解决方案?

也许我不能使用the_content,而是wp_insert_post_data

【问题讨论】:

  • 你的意思是不起作用?它应该做什么?你是对的,这是一个 HTML 注释,所以它不会显示在你的浏览器中。你的代码也很奇怪,基本上你正在做的是复制你拥有的文本并将两个精确的副本与你的标签分开......
  • 必须添加post pogination,但是标签&lt;!--nextpage--&gt;会像html评论一样显示

标签: wordpress filter pagination


【解决方案1】:

从带有&lt;!--nextpage--&gt; 的文本到“页面”的转换发生在setup_postdata。但是,当调用具有相同名称的模板标记 the_content 时,您使用的钩子就会执行。所以这意味着你必须在循环开始之前更改内容。这可能有点棘手。我不知道有什么合适的钩子,但你可以查看setup_postdata 的源代码,可能有一个。但是,在主题中,您可以访问 $posts,因此如果您将其放入模板中,它应该可以工作:

global $posts;
array_map( function( $apost ) {
    $apost->post_content = $apost->post_content.'<!--nextpage-->'.$apost->post_content;
    return $apost;
}, $posts );

如果您没有 PHP 版本 => 5.3,则不能使用匿名函数。在这种情况下,这个版本可以工作:

global $posts;
function output( $apost ) {
    $apost->post_content = $apost->post_content.'<!--nextpage-->'.$apost->post_content;
    return $apost;
}
array_map( 'output', $posts );

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2011-07-10
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多