插入默认文本并在其中更改一个单词的快捷代码?

时间:2019-06-15 作者:Newbie1

我是一个初学者,正在从事我的第一个项目。我一直在寻找一些关于如何创建插件或函数以创建特定短代码的指导。

假设我准备了两个默认文本;其中,一个%单词%在整个文本中重复出现。插入短代码时,我想指定哪个单词应该替换默认文本中的%word%。

因此,假设我想在我的博客文章的末尾插入文本No#1。我想短代码应该是这样的:[Text1 word=“Name”]这将在整个文本中插入准备好的文本,并用名称替换%word%。

我希望你能理解我的想法。我不需要代码-如果您能帮助我走上正确的道路,我将不胜感激,非常感谢您按照顺序解释步骤。我有数百万个问题——我应该以什么形式保存这些文本?如何开始创建自定义短代码?如果可以的话,我计划在本地主机环境(我已经设置好)上进行测试。非常感谢。

1 个回复
最合适的回答,由SO网友:LWS-Mo 整理而成

您可以使用以下内容:

function my_custom_shortcode( $atts ) {

    // Attributes
    $atts = shortcode_atts(
        array(
            \'word\' => \'example\', // the word which will be replaced
            \'part\' => \'1\' // for identifing the different texts
        ),
        $atts,
        \'textblock\'
    );

    // only if a word exists
    if ( isset( $atts[\'word\'] ) ) {

        // see if part="1" was inserted in the shortcode...
        if ($atts[\'part\'] === \'1\') {

            $text = \'Lorem ipsum dolor sit amet, \'.$atts[\'word\'].\' sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna \'.$atts[\'word\'].\' erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est \'.$atts[\'word\'].\' sit amet.\';

        } else { //... if not use this text

            $text = \'At vero eos et accusam et justo duo dolores et, \'.$atts[\'word\'].\'.\';

        }

        return $text; // return the text
    }


}
add_shortcode( \'textblock\', \'my_custom_shortcode\' );
我们使用具有2个属性的短代码。一个属性是要替换的单词。第二个属性(part)用于标识要显示的静态文本
如您所见,这只适用于您之前在快捷码中输入的静态文本。

相关推荐

覆盖WC_ShortCodes类中的静态方法(ShortCode)

我正在尝试覆盖product_categories 来自WooCommerce的短代码,以便我可以向包装器添加其他类[product_categories number=\"0\" parent=\"0\" class=\"container\"] 所以我看了一下WooCommerce code, 并创建了一个扩展WC_Shortcodes 我只是复制了静态方法product_categories /** * Updated product categories shortcod