使用参数和Foreach循环过滤现有挂接

时间:2015-11-17 作者:harman

我试图创建一个过滤器,将自定义列添加到Wordpress中可能存在的任何自定义类别的编辑页面。我知道过滤器挂钩必须符合,manage_edit-{$cat}_columns. 假设这是要添加的函数:

/* Add custom column to lists */
function add_shortlink_column( $columns ) {
    return array_merge( $columns, 
        array( \'shortlink\' => __( \'Shortlink\', \'your_text_domain\' ) ) );
} 
因为我想覆盖所有自定义类别(当前或未来),所以在调用get\\u分类法之后,我必须使用foreach循环来完成这项工作。

但是,add\\u filter导致了我的问题。。。

假设我只有两个类别;主题和product\\u目录。

如果我尝试这样做,一切都很好,并添加了以下列:

$value1 = \'topics\';
$value2 = \'product_cat\';
$filters = array( "manage_edit-{$value1}_columns", "manage_edit-{$value2}_columns" );
foreach ( $filters as $filter ) {
    add_filter( $filter, \'add_shortlink_column\' );
}
然而,如果我尝试这样做,它不会起作用。

$args = array(
  \'public\'   => true,
  \'_builtin\' => false     
); 
$taxonomies = get_taxonomies( $args, \'names\', \'and\' );  
foreach($taxonomies as $key => $taxonomy) {
    $filter = "manage_edit-{$taxonomy}_columns";
    add_filter( $filter, \'add_shortlink_column\' );      
}
我很确定这是某种语法问题。但我想不出来。任何帮助都将不胜感激。

谢谢

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

根据米洛的建议,他为我指明了正确的方向,这个问题现在已经解决了。

我所要做的就是。。。

add_action( \'init\', \'get_custom_tax\' );
function get_custom_tax() {
  $args = array(
    \'public\'   => true,
    \'_builtin\' => false   
  ); 
  $taxonomies = get_taxonomies( $args, \'names\', \'and\' );    
  foreach($taxonomies as $key => $taxonomy) {
      $filter = "manage_edit-{$taxonomy}_columns";
      add_filter( $filter, \'add_shortlink_column\', 50, 1 );     
  } 
}

相关推荐

Generating a perfect loop

所以我现在已经在这里坐了大约三个小时了,我不得不让这件事过去几个小时来好好睡一觉,同时我希望能得到你的帮助。我已经能够使用$wpdb->get\\u results从数据库中获取内容,并且能够将它们放入一个数组中,但是我想使用这些信息在循环中运行一个新的查询,以获取列表中的多个项目。我使用了本指南的一个变体https://stackoverflow.com/questions/45848249/woocommerce-get-all-orders-for-a-product 获取订单ID。现在,我已