Woocommerce 替换<;div id=";内容“&燃气轮机;整个商店

Woocommerce 替换<;div id=";内容“&燃气轮机;整个商店,woocommerce,Woocommerce,我正在寻求删除包装容器,并用更合适的标签替换它,以匹配我网站的其余部分 我首先尝试了以下行动: remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 20); remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 20); function W

我正在寻求删除
包装容器,并用更合适的标签替换它,以匹配我网站的其余部分

我首先尝试了以下行动:

remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 20); 
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 20); 

function WOO_before_main_content( $woocommerce_output_content_wrapper ) { 
    echo '<main class="woocommerce">';
}
function WOO_after_main_content( $woocommerce_output_content_wrapper ) { 
    echo '</main>';
}

// Use <main> instead, much better.
add_action('woocommerce_after_main_content', 'WOO_after_main_content', 5);
add_action( 'woocommerce_before_main_content',  'WOO_before_main_content', 5); 
同样的结果。你知道为什么我不能在我的整个商店里控制包装器吗

更新

在做更多的研究时,将
woocommerce\u列在
操作之前,仅由
archive-product.php、single-product.php
调用。所以我猜不是每一页都是?这让我有点困惑,因为每一篇在线文章都说要用它来编辑包装HTML元素。也许最近有什么变化

在搜索整个Woocommerce插件目录时,
global/wrapper start.php
是唯一包含
id=“content”
的东西,所以它一定来自那里。同样,试图将此模板覆盖到我的主题的woocommerce/global/wrapper-start.php也不起作用

因此,追溯到更远的地方,
wc template functions.php
中的
woocommerce\u output\u content\u wrapper()
函数是唯一加载wrapper start模板的函数。我曾尝试在functions.php文件中提前定义这个,但它也不起作用


我必须在这里遗漏一些内容。

您需要删除与添加操作具有相同优先级的操作。在您的代码中,您使用20作为优先级,但WooCommerce将其添加为10

// First remove default wrapper
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);

// Then add new wrappers
add_action('woocommerce_before_main_content', 'my_theme_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'my_theme_wrapper_end', 10);

function my_theme_wrapper_start() {
  echo '<main class="woocommerce">';
}

function my_theme_wrapper_end() {
  echo '</main>';
}
//首先删除默认包装器
删除操作(“主内容前的woocommerce”和“输出内容包装器”,10);
删除操作(“主内容后的woocommerce”和“输出内容后的woocommerce”,10);
//然后添加新的包装
添加动作(“主内容之前的woocommerce”,“我的主题”和“包装”开始”,10);
添加动作(“主内容之后的woocommerce”,“我的主题”和“包装”和“结束”,10);
函数my_theme_wrapper_start(){
回声';
}
函数my_theme_wrapper_end(){
回声';
}

您需要删除与所添加操作具有相同优先级的操作。在您的代码中,您使用20作为优先级,但WooCommerce将其添加为10

// First remove default wrapper
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);

// Then add new wrappers
add_action('woocommerce_before_main_content', 'my_theme_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'my_theme_wrapper_end', 10);

function my_theme_wrapper_start() {
  echo '<main class="woocommerce">';
}

function my_theme_wrapper_end() {
  echo '</main>';
}
//首先删除默认包装器
删除操作(“主内容前的woocommerce”和“输出内容包装器”,10);
删除操作(“主内容后的woocommerce”和“输出内容后的woocommerce”,10);
//然后添加新的包装
添加动作(“主内容之前的woocommerce”,“我的主题”和“包装”开始”,10);
添加动作(“主内容之后的woocommerce”,“我的主题”和“包装”和“结束”,10);
函数my_theme_wrapper_start(){
回声';
}
函数my_theme_wrapper_end(){
回声';
}

您好,谢谢您的帮助。我试图改变优先顺序,但它仍然只适用于某些页面,而不是所有页面。我还向主题帖子添加了更多关于我所做的其他研究的详细信息。原始标记仍然出现在哪些页面上?购物车、结帐、帐户(基本上是除产品类别或单个之外的任何页面)。您好,感谢您的帮助。我试图改变优先顺序,但它仍然只适用于某些页面,而不是所有页面。我还向主题帖子中添加了更多关于我所做的其他研究的细节。原始标记仍然出现在哪些页面上?购物车、结帐、帐户(基本上是除产品类别或单个之外的任何页面)。