我有一个网站,该网站有2个部分,每个部分具有不同的CSS和特定的URL(即testsite.com/one/和testsite.com/two/),我需要对每个URL和所有路径应用特定的样式表属于那些(例如testsite.com/one/test testsite.com/one/test2等等),因此对于testsite.com/one/*,所有人都会得到一个名为one.css的css文件,对于testsite.com/two/ *所有人都会得到一个名为two.css的CSS文件
<?php
function wpdocs_theme_name_scripts() {
if ( is_page( 'two') ) {
// If page matches, then load the following files
wp_enqueue_style('two', get_template_directory_uri().'/two.css',false,'1','screen' );
// If the condition tag does not match...
} else {
}
}
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );?>
此问题是,它仅将css文件应用于testsite.com/two,没有其他东西,例如testsite.com/two/xx或testsite.com/two/bbb,我需要获取要应用的css文件到包括testsite.com/two/在内的每个目录,是否有意义?
答案 0 :(得分:2)
您可以尝试检查所请求的URI是否包含标识“子站点”的字符串。
代码现在扩展为演示else,elesif和“ or”,以涵盖注释中的后续问题。评论中的问题。
function wpdocs_theme_name_scripts() {
global $post;
$perma = get_permalink( $post->ID ); // or use get_page_uri??
if (strpos($perma, '/two/') !== false || strpos($perma, '/anything/') !== false) {
wp_enqueue_style('two', get_template_directory_uri().'/two.css',false,'1','screen' );
}
elseif (strpos($perma, '/THREE/') !== false) {
wp_enqueue_style('three', get_template_directory_uri().'/THREE.css',false,'1','screen' );
}
else { // if you want to enqueue some default CSS for all other pages
wp_enqueue_style('default', get_template_directory_uri().'/default.css',false,'1','screen' );
}
}
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );
答案 1 :(得分:0)
我还没有测试过,但是这个想法是找到顶级祖先,并与该帖子/页面标题进行比较。
$post = get_post();
if ($post->post_parent) {
$ancestors=get_post_ancestors($post->ID);
$root=count($ancestors)-1;
$parent = $ancestors[$root];
} else {
$parent = $post->ID;
}
if(strtolower(get_the_title($parent)) == 'two') {
wp_enqueue_style('two', get_template_directory_uri().'/two.css',false,'1','screen' );
}
答案 2 :(得分:0)
这可能取决于您是否指定子页面具有父页面。或者,如果它们只是在该路径之内。
如果子页面具有指定为父页面的页面,则可以执行以下操作:
// for the number, use the ID of the parent page
if ( is_page( 'one' ) || '1' == $post->post_parent ) {
// the page is "one", or the parent of the page is "one"
wp_enqueue_style('one', get_template_directory_uri().'/one.css',false,'1','screen' );
}
if ( is_page( 'two' ) || '2' == $post->post_parent ) {
// the page is "two", or the parent of the page is "two"
wp_enqueue_style('two', get_template_directory_uri().'/two.css',false,'1','screen' );
}
如果未指定父项,则需要检查scytale上面指出的永久链接。