Question about do_shortcode

时间:2017-01-01 作者:Junaid Gondel

我对wordpress的开发还是有点陌生,我面临着一个我无法理解的问题。

我的wordpress网站主题使用以下代码显示3个类别,其中显示图像、类别名称和链接。

<?php echo do_shortcode(\'[product_categories number="\' . $number . \'" parent="0" columns="3"]\'); ?>
此代码输出为:

<div class="woocommerce columns-3">
   <ul class="products">
     <li class="product-category product first"><a href="#">Cat1</a><li>
     <li class="product-category product"><a href="#">Cat2</a><li>
     <li class="product-category product last"><a href="#">Cat2</a></li>
   </ul>
</div>
我的问题是在哪里可以找到输出html的代码?我想在li之前而不是之后添加a href。因为现在,当你点击这个词时,它只会链接到分类页面,但我希望当你同时点击图像上的任何地方时,它会链接到分类页面。

我已经查看了short\\u代码。php文件,但很难按照代码找到它的输出位置。

谢谢

2 个回复
SO网友:Nijat Rajabli

有很多方法可以做到这一点。

对于您的情况,具体的一点是您必须找到该短代码“调用”的函数。为此,您可以下载主题和插件文件并进行搜索add_shortcode 或更好product_categories(您的短代码名称)使用某些记事本软件在所有文件中的术语。记事本++有一个很好的特性,可以让您在特定目录中的所有文件中搜索这个词。一旦你找到它,它应该看起来像:

add_shortcode( \'product_categories\', \'function_for_product_categories\' );

现在你知道了function_for_product_categories 是您想要的函数。然后您可以搜索function_for_product_categories 找到提供该输出的函数,并进行所需的任何更改。

另一种方法更通用,您可以使用它来查找和浏览主题或插件以进行自定义编辑。您可以在所有主题文件中搜索输出的html标记(类名、ID等)以查找函数。这样,大多数情况下,你会得到更多的结果,你需要找到哪一个正是你想要的。

注意:不要忘记,如果您直接更改主题和插件文件,如果您更新它们,您的更改将丢失。因此,如果您要更新它们,请在子主题或您自己的插件中定义新功能并使用它们。

您可以查看的资源:
https://codex.wordpress.org/Shortcode_API
https://codex.wordpress.org/Child_Themes
https://codex.wordpress.org/Writing_a_Plugin

SO网友:Jami Gibbs

看起来是个WooCommerce shortcode. 您不应该直接编辑这些核心文件,因为您的自定义将在下一次插件更新中被覆盖。

此外,在锚标记中包装列表项不是有效的HTML。

不过,您可以使用一点CSS foo来实现这一点。您是否可以使用HTML结构更新您的问题,使其包含您希望也可以单击的图像?

UPDATE

深入WooCommerce,您可以通过复制来覆盖在循环中显示产品类别缩略图的模板woocommerce/templates/content-product_cat.phpyourtheme/woocommerce/content-product_cat.php 文件夹最好在child theme.

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗