我的主题具有以下文件夹结构:
theme
inc
theme
functions.php
init.php
functions.php
在inc / theme / functions.php中, 我放置了所有主题特定的功能(即删除分类法等)。在theme / functions.php中, 我具有所有核心功能。
用我当前的代码, WordPress指出”该网站遇到技术难题。”。如果我删除theme / functions.php中的所有内容, 则将加载内容, 但是不会执行inc / theme / functions.php中的代码。例如, 在inc / theme / functions.php中, 我有wp_enqueue_style(‘style’, get_stylesheet_uri());而且所有样式都没有成功。
似乎无法弄清楚:
为什么theme / functions.php会导致WordPress错误。
为什么未执行inc / theme / functions.php。
theme / functions.php
require_once trailingslashit( get_template_directory() ) . 'inc/init.php';
new theme_ThemeFunctions;
class theme_ThemeFunctions {
function __construct() {
load_theme_textdomain( 'theme' );
add_action( 'init', array( $this, 'post_types_taxonomies' ) );
add_action( 'init', array( $this, 'register_menus' ) );
}
public function post_types_taxonomies() {
register_post_type(
'case-studies', build_post_args(
'case-study', 'Case study', 'Case studies', array(
'menu_icon' => 'dashicons-book', 'menu_position' => 20, 'has_archive' => true
)
)
);
}
public function register_menus() {
register_nav_menus(
array(
'main' => __( 'Main Menu', 'theme' ), )
);
}
}
?>
inc / theme / functions.php
function scriptAndStyles() {
wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'scriptAndStyles' );
function remove_editor() {
remove_post_type_support('page', 'editor');
}
add_action('admin_init', 'remove_editor');
// Remove featured image option from pages
function remove_thumbnail_box() {
remove_meta_box( 'postimagediv', 'page', 'side' );
}
add_action('do_meta_boxes', 'remove_thumbnail_box');
// Remove posts type option
function post_remove () {
remove_menu_page('edit.php');
}
add_action('admin_menu', 'post_remove');
?>
inc / init.php
$include_dir = trailingslashit( get_template_directory() ) . 'inc/';
// Load any custom functions
require_once $include_dir . 'theme/functions.php';
?>
#1
你需要使用get_template_directory()来获取文件。
并在类本身下面使用新的theme_ThemeFunctions。
也可用于查看错误:
define('WP_DEBUG', 1);
define('WP_DEBUG_DISPLAY', 1);