【发布时间】:2021-02-14 11:49:45
【问题描述】:
是否可以在PHP中实现与下面的jQuery代码相同的东西?
我用它来隐藏从批发商进口产品时出现的错误。
这是我使用的 jQuery 代码:
jQuery(document).ready(function( $ ){
$('.woocommerce-product-details__short-description:has(p:nth-of-type(2)) p').addClass('ukryj-klase-krotki');
});
它是如何工作的:
jQuery 检查产品简短描述中是否有多个<p> 元素。如果还有更多 - 它将类 'ukryj-klase-krotki' 添加到所有 <p> 元素。然后我添加 CSS 类来隐藏产品简短描述中生成的第一个 <p> 元素,所以我想要的唯一一个是可见的:
CSS 代码:
.woocommerce-product-details__short-description .ukryj-klase-krotki{
display: none;
}
.woocommerce-product-details__short-description .ukryj-klase-krotki ~ .ukryj-klase-krotki{
display: block;
}
有什么帮助吗?
【问题讨论】:
-
“我用它来隐藏导入过程中出现的错误……”,为什么要隐藏错误而不是修复它们(不管它是什么)。 “是否可以在 PHP 中编写这样的 jQuery 代码?”,您不会回显需要您调整核心文件/扩展文件的错误。或者您打算将所有输出通过过滤器,然后使用正则表达式将其过滤掉?您也可以为此使用 CSS,不是吗?
.woocommerce-product-details__short-description p + p(应该在 .woocommerce-product-details__short-description 中选择除第一个以外的所有其他 p) -
@DefinitelynotRafal 在这种特殊情况下,隐藏错误更快,因为从仓库导入产品的过程是多阶段的并且需要很长时间(很多很多小时 - 25k+ 产品) .我没有广泛的 PHP 知识,无法很好地了解它的工作原理或编写脚本 - 因此我的问题是。我使用的解决方案并不适用于任何地方 - 例如,在产品的快速查看中,只有在按下“快速查看”按钮后才会加载(生成带有产品预览的弹出窗口)。我认为解决方案是 PHP。
-
我向您提供了 2 个选项:要么您首先不 echo 错误(为此,您需要知道错误在哪里回显)。或者(我真的不推荐这个选项)您在某种函数中捕获所有输出并在之后将其过滤掉(因为您需要调整您的框架以使其通过您的函数,然后再将请求返回给您的客户端) .如果您需要使用 PHP,我不相信您还有其他选择。也许有 wordpress 经验的人可以为您提供更多帮助。
-
“在这种特殊情况下,隐藏错误更快......”,通常情况下是这样,它是一个借口,但最终你可能会遇到麻烦。因为你只是掩盖错误而不是修复它。
标签: php jquery wordpress templates woocommerce