【问题标题】:How do I add sharelinkes shortcode in short code如何在短代码中添加 sharelinkes 短代码
【发布时间】:2020-08-14 13:39:40
【问题描述】:

我需要在 WordPress 的短代码中添加一个短代码。

[mycred_link href="http://www.mycred.me"]View portfolio[/mycred_link]

上面的这个短代码是来自myCred插件的一个短代码,当用户点击短代码里面的链接时,它会给用户积分。

我需要的是:

要显示一个 Facebook 分享链接,在短代码内使用。我已经有一个生成 Facebook 分享链接的短代码。

我需要这样的东西:

[mycred_link href="[facebook_share_link]"]View portfolio[/mycred_link]

在用户在 Facebook 上分享我的帖子时给他们积分。我试过了,但是没用。

我也在下面尝试了这段代码,它给用户点数并打开 Facebook。 但是 facebook 说这个 URL 是无效的。

<?php echo do_shortcode( "[mycred_link href='http://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode(get_permalink()); ?>']View portfolio[/mycred_link]"); ?>    

如果我在 href 后面加上双引号,wordpress 页脚将完全消失,我在 footer.php 上运行第二个代码

【问题讨论】:

    标签: php wordpress shortcode


    【解决方案1】:

    问题出在 myCred 插件的代码中。正如您从插件 wp-content/plugins/mycred/includes/shortcodes/mycred_link.php 的源代码中看到的那样,您在 href 属性中传递的内容不会被 do_shortcode 解析,因此您将无法插入。

    从这个答案可以看出:Shortcodes inside a shortcode - wordpress wordpress 短代码不会自动堆叠。

    幸运的是,函数的结尾是:

    return apply_filters( 'mycred_link', '<a ' . implode( ' ', $attr ) . '>' . do_shortcode( $link_title ) . '</a>', $atts, $link_title );
    

    因此,无需接触插件源代码,您就可以使用过滤器,然后对 href 做一些事情。我的猜测是这样的(未测试)

    在你的主题文件夹中的 function.php 中插入如下内容:

    add_filter('mycred_link','edit_mycred_link',10,3 );
    function edit_mycred_link($link_html, $atts, $link_title){
        return str_replace('__edit_mycred_link__',do_shortcode('[facebook_share_link]'),$link_html);
    }
    

    然后在您的模板文件/帖子内容中

    [mycred_link href="__edit_mycred_link__"]View portfolio[/mycred_link]
    

    应该可以的

    【讨论】:

    • 我对php知之甚少,代码在网站上返回了一个致命错误,所以只好通过cpanel删除。
    • 你好兄弟任何帮助,我真的需要这个代码。
    • Wordpress 提示“您的网站出现严重错误”
    • 请暂时启用 wp_debug 看看发生了什么。你应该看到真正的错误
    【解决方案2】:

    我终于解决了这个问题。我在wordpress论坛上问了这个问题,版主给了我。

        <?php
    echo do_shortcode( '[mycred_link href="http://www.facebook.com/sharer/sharer.php?u=' . urlencode( get_permalink()) . '"]View portfolio[/mycred_link]');
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多