Intereting Posts
Довольно URL-адреса или постоянные ссылки для вложений Reslug пользовательский тип сообщения Есть ли функция move_attachment_file () в wordpress? wp e-commerce – проблема с темой – почему бы не загрузить wpsc-single_product.php? Успешное или сообщение об ошибке после запуска mysql-кода в functions.php На одной странице отображается ошибка «Index of /» Ссылка Всплывающее окно в пользовательском плагине Измените авторский пул от имени пользователя до псевдонима Невозможно использовать is_single () и is_admin в functions.php Изменение имени настраиваемого архива типа сообщения Не удалось получить Предварительный просмотр загруженного изображения в пользовательском мета-окне get_posts, которым не присвоено определенное настраиваемое поле Система шаблонов WordPress для пользовательских плагинов Мой шаблон archive-posttype.php не загружается Правильная реализация / использование подсветки кода / синтаксиса

Как предоставить все CPT папку автоматически на основе их пули

Вот что я сейчас и работаю:

function get_custom_post_type_template($single_template) { global $post; if ($post->post_type == 'amazon') { $single_template = TEMPLATEPATH . '/amazon/single.php'; } return $single_template; } add_filter( 'single_template', 'get_custom_post_type_template' ); 

Но я хочу что-то вроде этого:

 add_filter('single_template', 'my_single_template_folders_terms'); function my_single_template_folders_terms($template) { global $wp_query; foreach( get_post_type(array('public' => true, '_builtin' => false)) as $post_type ) { if ( file_exists(TEMPLATEPATH . "/{$post_type->slug}/single.php") ) return TEMPLATEPATH . "/{$post_type->slug}/single.php"; } return $template; } 

Я получил эту ошибку; Предупреждение: неверный аргумент, предоставленный foreach ()

Solutions Collecting From Web of "Как предоставить все CPT папку автоматически на основе их пули"

Ваша вторая функция неверна. get_post_type($post) исключением текущего объекта post или post ID или любого объекта сообщения или идентификатора, предоставленного ему. Вы используете аргументы для get_post_types( $args, $output, $operator ) для get_post_type , что get_post_type к get_post_type функции, которая, в свою очередь, дает вам ошибку в вашем цикле foreach .

Чтобы исправить вашу функцию, используйте что-то вроде этого:

 add_filter('single_template', 'my_single_template_folders_terms'); function my_single_template_folders_terms($template) { global $post; $post_type = get_post_type($post); if ( file_exists(TEMPLATEPATH . "/{$post_type}/single.php") ) return TEMPLATEPATH . "/{$post_type}/single.php"; return $template; }