Wordpress:更改帖子内容,即使它是空的
Wordpress: changing a posts content , even if it is empty
我正在尝试使用过滤器钩子“the_content”在单个页面(woocommerce,它的产品)中更改 Wordpress the_content 的 the_content,效果相当好 –仅当 post 中没有内容(没有详细描述的产品)时,我的主题甚至不显示内容容器,因此甚至从未调用 the_content。
我无权访问这些功能,我插入了代码片段——我必须在什么地方检查空内容,我怎么能改变它(我能吗?)而不更新数据库中的 post?
如果内容只包含一个字符,以下是有效的方法:
add_filter('the_content','produktbeschrieb',-1);
function produktbeschrieb($content) {
$kategorien = get_the_term_list( $post->ID, 'product_cat', '', ', ') ;
if ( is_singular() && in_the_loop() && is_main_query() ) {
if(str_contains($kategorien,'R&F Pigment Sticks')){
return $content."<p>R&F Pigment Sticks® sind Ölfarben, die so viel Wachs enthalten, dass die Farbe in Stäbchenform gegossen werden kann. </p>";
}
else {
return $content;}
}
解决方案可能在一定程度上取决于您使用的主题。但我已经测试了以下内容并且它对我有用。我相信默认情况下,如果没有描述,WooCommerce 不会添加描述选项卡,因此您需要在描述为空的产品时将其添加回来,然后通过使用设置描述为空时的值您已经编写的过滤器。
add_filter('the_content','produktbeschrieb',-1);
function produktbeschrieb($content) {
$kategorien = get_the_term_list( $post->ID, 'product_cat', '', ', ') ;
if ( is_singular() && in_the_loop() && is_main_query() ) {
if(str_contains($kategorien,'R&F Pigment Sticks')){
return $content."<p>R&F Pigment Sticks® sind Ölfarben, die so viel Wachs enthalten, dass die Farbe in Stäbchenform gegossen werden kann. </p>";
}
else {
return $content;}
}
function woocommerce_empty_description_callback() {
global $product;
if( is_product() && empty( $product->get_description() ) ) {
echo apply_filters( 'the_content', '' );
}
}
function jt_woocommerce_default_product_tabs($tabs) {
if ( empty( $tabs['description'] ) ) {
$tabs['description'] = array(
'title' => __( 'Description', 'woocommerce' ),
'priority' => 10,
'callback' => 'woocommerce_empty_description_callback',
);
}
return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'jt_woocommerce_default_product_tabs' );
我正在尝试使用过滤器钩子“the_content”在单个页面(woocommerce,它的产品)中更改 Wordpress the_content 的 the_content,效果相当好 –仅当 post 中没有内容(没有详细描述的产品)时,我的主题甚至不显示内容容器,因此甚至从未调用 the_content。 我无权访问这些功能,我插入了代码片段——我必须在什么地方检查空内容,我怎么能改变它(我能吗?)而不更新数据库中的 post?
如果内容只包含一个字符,以下是有效的方法:
add_filter('the_content','produktbeschrieb',-1);
function produktbeschrieb($content) {
$kategorien = get_the_term_list( $post->ID, 'product_cat', '', ', ') ;
if ( is_singular() && in_the_loop() && is_main_query() ) {
if(str_contains($kategorien,'R&F Pigment Sticks')){
return $content."<p>R&F Pigment Sticks® sind Ölfarben, die so viel Wachs enthalten, dass die Farbe in Stäbchenform gegossen werden kann. </p>";
}
else {
return $content;}
}
解决方案可能在一定程度上取决于您使用的主题。但我已经测试了以下内容并且它对我有用。我相信默认情况下,如果没有描述,WooCommerce 不会添加描述选项卡,因此您需要在描述为空的产品时将其添加回来,然后通过使用设置描述为空时的值您已经编写的过滤器。
add_filter('the_content','produktbeschrieb',-1);
function produktbeschrieb($content) {
$kategorien = get_the_term_list( $post->ID, 'product_cat', '', ', ') ;
if ( is_singular() && in_the_loop() && is_main_query() ) {
if(str_contains($kategorien,'R&F Pigment Sticks')){
return $content."<p>R&F Pigment Sticks® sind Ölfarben, die so viel Wachs enthalten, dass die Farbe in Stäbchenform gegossen werden kann. </p>";
}
else {
return $content;}
}
function woocommerce_empty_description_callback() {
global $product;
if( is_product() && empty( $product->get_description() ) ) {
echo apply_filters( 'the_content', '' );
}
}
function jt_woocommerce_default_product_tabs($tabs) {
if ( empty( $tabs['description'] ) ) {
$tabs['description'] = array(
'title' => __( 'Description', 'woocommerce' ),
'priority' => 10,
'callback' => 'woocommerce_empty_description_callback',
);
}
return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'jt_woocommerce_default_product_tabs' );