Questions tagged «conditional-content»


8
存在简码时,排队脚本/样式
注册/排队脚本和/或样式以便在插件中使用的想法是什么? 我最近制作了一个插件简单插件,以使用简码添加用户头像/ gravatar。我有不同的样式选项来显示化身(正方形,圆形等),并决定将CSS直接放入简码本身。 但是,我现在意识到这不是一个好方法,因为每次在页面上使用简码时,它将重复css。我在该站点上还看到了其他几种方法,并且wp Codex甚至有自己的两个示例,因此很难知道哪种方法最一致,最快。 这是我目前知道的方法: 方法1:直接包含在简码中- 这是我目前在插件中所做的,但由于重复代码而显得不太好。 class My_Shortcode { function handle_shortcode( $atts, $content="" ) { /* simply enqueue or print the scripts/styles in the shortcode itself */ ?> <style type="text/css"> </style> <?php return "$content"; } } add_shortcode( 'myshortcode', array( 'My_Shortcode', 'handle_shortcode' ) ); 方法2:使用类有条件地排队脚本或样式 class My_Shortcode { static …


4
仅在存在特定的简码或窗口小部件时加载脚本
我需要一种在加载页面/帖子内容之前对其进行过滤的方法,这样,如果存在特定的短代码,我可以将脚本添加到页眉中。经过大量搜索之后,我在http://wpengineer.com上发现了这一点 。 function has_my_shortcode($posts) { if ( empty($posts) ) return $posts; $found = false; foreach ($posts as $post) { if ( stripos($post->post_content, '[my_shortcode') ) $found = true; break; } if ($found){ $urljs = get_bloginfo( 'template_directory' ).IMP_JS; wp_register_script('my_script', $urljs.'myscript.js' ); wp_print_scripts('my_script'); } return $posts; } add_action('the_posts', 'has_my_shortcode'); 这绝对是出色的,完全满足了我的需求。 现在,我需要进一步扩展它,并对侧边栏进行相同的操作。它可以是特定的窗口小部件类型,短代码,代码段或任何其他可以识别何时需要加载脚本的方法。 问题是在加载侧栏之前我不知道如何访问侧栏内容(所讨论的主题将具有多个侧栏)

3
如何有条件地将样式表仅排入特定页面?
在开始之前,我想承认有一些非常好的文章,这些文章针对如何基于页面/帖子内容有条件地使脚本入队。 WordPress插件开发-如何仅在帖子需要时有条件地包括CSS和JavaScript 如何像WordPress Master一样加载JavaScript 这些很棒,但是它们比我想做的要先进得多。 我觉得答案是使用内置is_page()函数(codex),但是当我尝试使用它时,站点中断了,或者根本无法正常工作。 我认为我只是在错误的位置执行条件逻辑。 这是我尝试添加到我的functions.php中的内容: function wpse39130_register_more_stylesheets() { wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' ); } add_action( 'init', 'wpse39130_register_more_stylesheets' ); function wpse39130_conditionally_enqueue_my_stylesheet() { // only enqueue on product-services page slug if ( is_page( 'products-services' ) ) { wp_enqueue_style( 'stylesheet_name' ); } } add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' ); 当我删除其中的条件部分时,样式表已成功入队,因此我知道这可行。

6
将is_page放到functions.php文件中时,为什么is_page无法正常工作?
我有一个名为“ Apple”的页面,该页面的ID为2533。 在page.php文件中,我有一行: echo $bannerimg 而在functions.php中的此功能: if ( is_page( '2533' ) ) { // also tested with 'Apple' $bannerimg = 'apple.jpg'; } elseif ( is_page( 'test' ) ) { $bannerimg = 'test.jpg'; } elseif ( is_page( 'admissions' ) ) { $bannerimg = 'admissions.jpg'; } else { $bannerimg = 'home.jpg'; } …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.