add class to term_description

时间:2016-05-27 作者:Daniel Florido

尝试筛选term\\u description的输出以包含类https://codex.wordpress.org/Function_Reference/term_description

function add_class_to_term_description() { ?>

<?php  echo \'<div class="cell">\' . term_description() . \'</div>\'; ?>

<?php  }
add_filter( \'term_description\', \'add_class_to_term_description\' ); ?>
im getting和empty cell类返回了数百次,这耗尽了内存。我做错了什么?

4 个回复
最合适的回答,由SO网友:Daniel Florido 整理而成

这就成功了

<?php function add_class_to_term_description($term_description) {
  echo \'<div class="cell">\' . $term_description. \'</div>\';
}
add_filter( \'term_description\', \'add_class_to_term_description\' ); ?>

SO网友:Luke Gedeon

Daniel使用传递给函数的值,走在了正确的道路上。但是,您不应该回显任何内容,因为这是一个过滤器。您应该返回值。

<?php
function add_class_to_term_description( $term_description ) {
  return \'<div class="cell">\' . $term_description. \'</div>\';
}
add_filter( \'term_description\', \'add_class_to_term_description\' ); ?>

SO网友:user3316

您必须使用passed$value 而不是term_description() 功能:

function add_class_to_term_description() {
  echo \'<div class="cell">\' . $value . \'</div>\';
}
add_filter( \'term_description\', \'add_class_to_term_description\' );

SO网友:Marinski

我测试了许多潜在的解决方案,包括上面的所有答案。它们要么不起作用,要么没有如预期的那样起作用——一些输出空段落,另一些什么也不做。对我来说,最好的解决方案是使用PHP函数preg_replace 要搜索开始段落HTML标记并插入具有所需值的class属性,请执行以下操作:

function add_class_to_term_descr($content){
    return preg_replace(\'/<p([^>]+)?>/\', \'<p$1 class="lead">\', $content, 1);
}
add_filter(\'term_description\', \'add_class_to_term_descr\');
这个解决方案可以很容易地修改以匹配其他类型的WordPress输出,例如“div”标记。我的解决方案基于this answer 并根据我的需要进行了修改。

相关推荐

Apply_Filters()对所需的参数进行切片

我正在尝试向WooCommerce订单中的每个退款行添加一个按钮(其功能超出了这个问题的范围,足以说明它需要退款id作为参数)。我发现这些行是在woocommerce\\includes\\admin\\meta Box\\views\\html订单退款中创建的。无法重写的php。然而,有一项行动:do_action( \'woocommerce_admin_order_item_values\', null, $refund, $refund->get_id() ); 这似乎非常适合我的