Intereting Posts
woocommerce признакам продуктов и категорий Пользовательские статические ссылки для конкретного меню Right Before / Next Функция wp_nav_menu, работающая сейчас WP Customizer: сохранение состояния управления Как сделать тему css первой, а не плагин css Как найти идентификатор галереи помощь Я изменил одну валюту в woocommerce, и все разрушено Разделить тестирование с помощью кэша W3? Пользовательский плагин: попытка отображения сохраненных данных во внешнем интерфейсе Правильный подход к стилю / шаблону вывода плагина Как сделать привязку доменов к подкаталогам? Пользовательские типы сообщений, отключить поля Форма поиска WordPress и результат поиска через поле ACF в пользовательской таксономии Чистая установка – изменение постоянных ссылок в двадцать четыре дает 404 Можно ли изменить путь к css-файлу, зарегистрированному через wp_enqueue_style ()? ПОЕДИТ – Продолжить перевод

Передача переменной register_taxonomy ()

Я пытаюсь создать несколько таксономий. Следующим образом…..

$taxonomies = $wpdb->get_results( "SELECT * FROM $table_name" ); foreach ($taxonomies as $taxonomy) { //stuff that defines the taxonomy register_taxonomy( $taxonomy->singular_name, 'book', $tagArgs ); } 

Похоже, что WP не любит регенерировать таксономию с помощью $taxonomy->singular_name unique_name. Xdebug дает мне следующую ошибку.

 Notice: Trying to get property of non-object in /home/wpplugin/public_html/wp-includes/link-template.php on line 898 

Я пробовал несколько разных вещей. Преобразуя объект в массив и подавая его на register_taxonomy (), у меня есть tride casting $ taxonomy-> unique_name как строка и несколько других случайных догадок, которые вызывают тот же результат. Единственное, что работает, – это поставить цитированную строку вместо $ taxonomy-> unique_name, которая не будет соответствовать моим потребностям.

Есть ли у кого-нибудь идеи по этому поводу? Спасибо, Грег

Полный код здесь …..

 add_action( 'init', 'create_book_taxonomies', 0 );function create_book_taxonomies() { global $wpdb; $table_name = $wpdb->prefix . 'wlc_custom_taxonomy'; $taxonomies = $wpdb->get_results( "SELECT * FROM $table_name" ); foreach ($taxonomies as $taxonomy) { $enterMeOnce = $taxonomy->singular_name; $book = $taxonomy->singular_name; if($taxonomy->singular_name != 'singular-name'){ //exclude the default table row $resLabels = array( 'name' => _x( $enterMeOnce , 'Post Type General Name' ), 'singular_name' => _x( $enterMeOnce , 'Post Type Singular Name' ), 'menu_name' => __( $enterMeOnce ), 'name_admin_bar' => __( $enterMeOnce ), 'all_items' => __( $enterMeOnce ), 'add_new_item' => __( 'Add New ' . $enterMeOnce ), 'edit_item' => __( 'Edit ' . $enterMeOnce ), 'new_item' => __( 'New ' . $enterMeOnce ), 'view_item' => __( 'View ' . $enterMeOnce ), 'search_item' => __( 'Search ' . $enterMeOnce ), 'not_found' => __( 'No '.$enterMeOnce .' found' ), 'not_found_in_trash' => __( 'No '.$enterMeOnce .' found in trash' ), 'description' => __( $enterMeOnce .' are special posts that are showcased on the '.$enterMeOnce .' page.' ), ); $resArgs = array( 'labels' => $resLabels, 'public' => true, 'exclude_from_search' => false, 'publcly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-lightbulb', 'capability_type' => 'post', 'meta_box_cb' => true, 'show_admin_column' => true, 'hierarchical' => true, 'has_archive' => true, //'rewrite' => true, /*'capabilities' => array( 'manage_terms' => 'manage_resource', 'edit_terms' => 'manage_categories', 'delete_terms' => 'manage_categories', 'assign_terms' => 'edit_posts' ),*/ 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'post_format' ) ); register_post_type( $book , $resArgs ); $labels = array( 'name' => _x( $taxonomy->name . ' Categories', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( $taxonomy->name . ' Category', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( $taxonomy->name . ' Categories', 'text_domain' ), 'all_items' => __( 'All Categories', 'text_domain' ), 'parent_item' => __( 'Parent Category', 'text_domain' ), 'parent_item_colon' => __( 'Parent Category:', 'text_domain' ), 'new_item_name' => __( 'New Resource Category', 'text_domain' ), 'add_new_item' => __( 'Add New Resource Category', 'text_domain' ), 'edit_item' => __( 'Edit Category', 'text_domain' ), 'update_item' => __( 'Update Category', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate resource cat names with commas', 'text_domain' ), 'search_items' => __( 'Search Resource Categories', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove resource categories', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used Categories', 'text_domain' ), 'not_found' => __( 'Resource Category Not Found', 'text_domain' ), 'slug' => __( $taxonomy->name . 'category' ) ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'has_archive' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => false, 'rewrite' => true, ); register_taxonomy( $taxonomy->singular_name, array( $book ), $args ); $tagLabels = array( 'name' => _x( 'Writers', 'taxonomy general name' ), 'singular_name' => _x( 'Writer', 'taxonomy singular name' ), 'search_items' => __( 'Search Writers' ), 'popular_items' => __( 'Popular Writers' ), 'all_items' => __( 'All Writers' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit Writer' ), 'update_item' => __( 'Update Writer' ), 'add_new_item' => __( 'Add New Writer' ), 'new_item_name' => __( 'New Writer Name' ), 'separate_items_with_commas' => __( 'Separate writers with commas' ), 'add_or_remove_items' => __( 'Add or remove writers' ), 'choose_from_most_used' => __( 'Choose from the most used writers' ), 'not_found' => __( 'No writers found.' ), 'menu_name' => __( $taxonomy->name . ' Tags' ), ); $tagArgs = array( 'hierarchical' => false, 'labels' => $tagLabels, 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'writer' ), ); register_taxonomy( $taxonomy->singular_name, $book, $tagArgs ); } } } 

Оказывается, здесь речь идет о заявлении foreach. Я изменил цикл из

 foreach ($taxonomies as $taxonomy) { 

в

 for ($counter=0; $counter < sizeof($taxonomy); $counter++) { 

а также все релевантные итаторы …

 register_taxonomy( $taxonomy->singular_name, 'book', $tagArgs ); 

стал

 register_taxonomy( $taxonomy[$counter]->name, $book, $args ); 

и все прошло хорошо.

Я подозреваю, что это проблема с памятью хост-машины, но я не уверен, есть ли у кого-нибудь представление о том, почему это сработало, я хотел бы это услышать. Но пока эта проблема решена.