如何使用短语更新某个类别的每个标题

时间:2018-09-27 作者:Tcmxc

我想在某个类别的每个产品标题前面添加“定制”。

<?php 
$args = array(\'post_type\' => \'product\',
              \'tax_query\'=> array(
             array(\'taxonomy\' => \'product_cat\',
                   \'field\'    => \'id\',
                   \'terms\'    => \'3439\',),),
              \'posts_per_page\'    => -1,
         );
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) 
   {
      while ( $loop->have_posts() ) : $loop->the_post();
         $prod_id = get_the_ID();
         $my_post = array(\'ID\'=> $prod_id,
                          \'post_title\'   => \'custom built\', // I want to add \'custom built\' not replace the whole title
              );
         wp_update_post( $my_post );
      endwhile;
   }
wp_reset_postdata();
?>

2 个回复
SO网友:realloc

我会使用过滤器。有时情况会发生变化,必须翻译字符串,等等:

function my_custom_built_title( $title, $post_id ) {
    $post  = get_post( $post_id );
    if ( \'product\' == $post->post_type ) {
        $terms = wp_get_post_terms( $post->ID, \'product_cat\', [ \'fields\' => \'ids\' ] );
        if ( in_array( \'3439\', $terms ) ) {
            $title = \'Custom build \' . $title;
        }
    }

    return $title;
}
add_filter( \'the_title\', \'my_custom_built_title\', 10, 2 );
我没有测试它,但这可能是一个起点。

SO网友:dominotrix

或者,您可以使用CSS简单地添加它::after . 您可以添加以下内容:

.product-title::after{
    content:\'custom built\';
    position:absolute;
    right:0;
    top:0;
}

.product-title{
    position:relative;
}
只需更换.product-title 和你的头衔等级有关。

结束

相关推荐