kn007的个人博客
♥ You are here: Home > 软件与网络 > php > [官方]按需加载 Shortcode 相关脚本、样式

[官方]按需加载 Shortcode 相关脚本、样式

by | 4 Comments

提醒:本文最后更新于 3491 天前,文中所描述的信息可能已发生改变,请仔细核实。

kf11icfmkl3infk4065rnn

在小怪物那闲逛,进到了木木那里看到了篇《按需加载 Shortcode 相关脚本文件》,其代码实现shortcode按需加载。

文章说到是参照水煮鱼还有一位外国朋友所写内容,通过判断文章是否存在短代码来,确实是可以实现这个目的(按需加载)。

虽然说Wordpress官方文档没有很详细的谈到这方面,但官方shortcode代码已经告诉我们一个简单实现办法。并且性能化。

那么一个标准的shortcode按需加载是如何实现的呢?我简单的写了下,如下所示:

<?php

/**
 * 《一个简单的shortcode按需加载典例》
 * 这是一个使用类为加载方式的短代码示例。
 * 如果你直接是以php函数注册的shortcode,可以直接通过
 *   static $instances = 0;
 *   $instances++;
 * 来达到相同目的。
 * kn007 写于2014年9月底。
 */

class example {

    protected $instance = 0;
    
    /**
     * Init - Register shortcodes
     */
 
    public function init() {
        add_shortcode( 'example', array( $this, 'example_shortcode' ) );
    }

    /**
     * Callback for the [example] shortcode
     */
     
    public function example_shortcode( $atts = array(), $content = '' ) {        
        $this->instance++;
        $atts = shortcode_atts( 
            array(
                'test'          => ''
            ), $atts, 'example_shortcode' );

        // something...

        ( 1 === $this->instance ) && wp_enqueue_xxx or call_function or do_action;

        // something...

        return something;
    }

}

通过定义一个变量,当shortcode被调用时,变量变为True,会自动加载相关js、css,或其他相关需要调用的。

比起木木文章中,判断post是否存在短代码(has_shortcode),智能化,性能化不少。

貌似没什么说到这个,所以贡献出来。


话说New Playlist Shortcode已完成测试、调试,但因个别原因,暂不放出代码,或许需要再晚点。

详细效果见《《恶作剧之吻》原声大碟》,和其他

可以外链的感觉真好。

这篇文章算是9月底的最后一篇文章吧。

bong II挂了,整个人都不好了。。擦。

转载请注明转自:kn007的个人博客的《[官方]按需加载 Shortcode 相关脚本、样式

donate
有所帮助?

Comments

4 Comments立即评论
  1. 啥叫bong 2挂了。。。
    instagram还挂了呢今天。

    1. MOD回复

      @小怪物: 坏了,电池挂掉了。。。厂家答应发过电池过来

    2. @kn007: 这才晒完就... :x

    3. MOD回复

      @小怪物: :cry: :cry: :cry: 超级悲催

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif