问题
您共享的代码有一些问题:首先,调用这样的函数在WordPress的引导过程中不起作用,并且无法在必要的位置和时间获取必要的值,因此条件可能不会像您预期的那样起作用。
Solution: 将函数挂钩到适当的挂钩上,以及wp_enqueue_scripts
是这样一个用于排队脚本的挂钩。
您使用$post->post_parent_in
脱离上下文。post_parent_in
是的属性WP_Query()
类,该类在全局$post
对象
Solution: 相反,你有post_parent
输入要比较的必要值。
试用以下代码[技术上]将排队myscript
仅在子页面上。内联注释将指导您了解某些行的用途。(未彻底测试)
/**
* My Custom Script for Child Pages only.
*/
function wpse357977_custom_script() {
// If not on the detail page, bail out.
if(! is_singular()) {
return;
}
global $post;
// If not on my Custom Post Type, bail out.
if(\'mycpt\' !== $post->post_type) {
return;
}
// \'0 !==\' means only on the child pages.
if( 0 !== $post->post_parent) {
wp_register_script(\'myscript\', get_template_directory_uri() .\'/myscript.js\', array(), \'wpse357977\', true);
wp_enqueue_script(\'myscript\');
}
}
add_action( \'wp_enqueue_scripts\', \'wpse357977_custom_script\' );