将功能限制为特定的职位类别

时间:2014-09-03 作者:Garland Briggs

我有一个函数可以将图像包装到自定义div中。

它被放置在函数中。php并修改所有帖子。我想知道是否有办法仅将其应用于某一类别的帖子。

功能如下:

function my_image_tag($html, $id , $alt, $title) {
    $html = "<div class=\'my-class\'>" . $html . "</div>";
    return $html;
}

add_filter(\'get_image_tag\',\'my_image_tag\',10,4);
更新:Robert Hue的方法不适用于此函数,但它适用于以下函数,我认为更好(至少对我的使用):

function wrapImagesInDiv($content) {
    if ( in_category( \'prosjekter\' ) ) {
        $pattern = \'/(<img[^>]*class=\\"([^>]*?)\\"[^>]*>)/i\';
        $replacement = \'<div class="image-container $2">$1</div>\';
        $content = preg_replace($pattern, $replacement, $content);
    }
    return $content;
}
add_filter(\'the_content\', \'wrapImagesInDiv\');

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

您应该检查类别帖子以修改内容。在in\\u category check中指定类别ID(整数)、名称或slug(字符串)或其中的一个数组。

function my_image_tag( $html, $id , $alt, $title ) {
    if ( in_category( \'1\' ) ) {
        $html = "<div class=\'my-class\'>" . $html . "</div>";
    }
    return $html;
}

add_filter( \'get_image_tag\', \'my_image_tag\', 10 ,4 );
对于slug类blog-post 您可以使用in_category( \'blog-post\' )

如果您想使用多个类别,那么可以执行以下操作。

in_category( array( \'15\', \'Tropical Birds\', \'small-mammals\' ) )
它是ID、Name和slug的组合。所以,如何使用它取决于你自己。

EDIT

如果您正在使用此外部循环,请尝试此操作。

function my_image_tag( $html, $id , $alt, $title ) {
    global $post;
    if ( in_category( \'1\' ) ) {
        $html = "<div class=\'my-class\'>" . $html . "</div>";
    }
    return $html;
}
add_filter( \'get_image_tag\', \'my_image_tag\', 10 ,4 );

结束

相关推荐

Wp.getPosts,状态=‘trash’,使用node.js

我想知道如何设置wp的过滤器选项。获取帖子。我想获得状态为“垃圾”的帖子。筛选器当前为空,并返回除垃圾以外的所有帖子。我正在使用xmlrpc wordpress api和节点wordpress插件。https://github.com/scottgonzalez/node-wordpress这是我当前的代码:wp.getPosts(\'<filter>\', [\'title\',\'status\'], function(err, data){ }); 我不确定过