如果POST具有非短码字符串

时间:2017-01-24 作者:apasajja

我试图在帖子包含特定文本时加载CSS/JS。让我们说当字符串table 当前,加载其他CSS/JS。

has_shortcode 很好,但不适用于非短码字符串。使用has_term 是可能的,但很乏味。

下面是has_shortcode 参考功能:

function loadmyshortcode() {
    global $post;
    if( is_a( $post, \'WP_Post\' ) && has_shortcode( $post->post_content, \'my-shortcode\') ) {
        wp_enqueue_script( \'idnamehere\', get_template_directory_uri() . \'/js/my-shortcode.js\', array(), \'\', true );
    }
}
add_action( \'wp_enqueue_scripts\', \'loadmyshortcode\');

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

这确实是一个基本的PHP问题。使用strpos(). 示例:

if ( false !== strpos( $post->post_content, \'foo\' ) ) {
    wp_enqueue_script();
}
另外,我建议你不要wp_enqueue_scripts() 但是后来的钩子,例如。the_content 然后在页脚中加载JavaScript。这在任何情况下都是最有效的,因为wp_enqueue_scriptswp_head 在加载/显示帖子内容之前调用。

看见How to add stylesheets only to pages with specific shortcode? 对于这个问题的解释,这里基本上是重复的。

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?