如何仅在某些帖子类型上使用apply_filters或add_filter?

时间:2019-05-08 16:14:09

标签: php wordpress

我正在尝试编辑图像的标记,但仅用于一种自定义帖子类型。如何将过滤器仅应用于该帖子类型?

我尝试查询函数内部和外部的帖子类型。

function custom_email_images($html, $id, $caption, $title, $align, $url) {
  $post_type = get_post_type();
  if ( 'email-layout' === $post_type ) {
    $src = wp_get_attachment_url($id);
    $html = '<img src="' . $src . '?w=800" width="415" style="width:415px;max-width:100%">';
  }
  return $html;
}

apply_filters(
  'image_send_to_editor',
  'custom_email_images',
  10,
  6
);

1 个答案:

答案 0 :(得分:0)

get_post_type()默认为get_post_type($ post)。 该函数本身并不了解全局$ post变量。

尝试将其添加到顶部的函数中,看看是否可行:

global $post;

否则,尝试尝试print_r或回显get_post_type并查看其含义(当前可能为“ false”)。