Como mostrar as inputs em uma taxonomia personalizada pelo autor?

Eu tenho um site que eu estou construindo para que as pessoas escrevam seus próprios livros. Tenho uma taxonomia personalizada para isso, livros rotulados.

Agora eu preciso de um link ou pull-down que contém todos os autores no site, para que os espectadores possam ver todos os livros feitos por cada autor (os perfis mostram todas as postagens , mas não há inputs de taxonomia personalizadas). Estive tentando fazer algo para fazer isso (através de um widget), mas na verdade não conheço o php e não consegui acessar nenhum lugar (eu também não conheço o html). A razão pela qual eu preciso em um widget é porque o tema que estou usando redefine os arquivos php sempre que ele é atualizado, o que significa que não consigo adicionar ou editar nada neles (mesmo que eu soubesse).

Pergunta: Existe uma maneira que eu posso:

  1. Crie uma lista de auto-atualização (página, pull-down, o que for) dos autores.
  2. Se esses autores, quando clicados, mostrarem uma lista dos termos que eles criaram dentro de uma taxonomia personalizada específica (eu tenho várias taxonomias personalizadas, então eu tenho que ser capaz de especificar).

Eu percebo que o curso de ação automático provavelmente é começar a editar os arquivos php do tema, mas lembre-se que não posso fazer isso. Eu preciso de algo que eu possa colocar em um widget (como html em um widget de texto), ou algum tipo de página com a qual eu possa fazer um link.

Exemplo:

Tenho a taxonomia personalizada de “livros”. O autor A faz os livros ‘One’ e ‘Two.’ O autor B faz os livros “Três” e “Quatro”. Idealmente, eu gostaria de um pulldown em algum lugar que liste todos os autores. Este pulldown se atualiza automaticamente, então, se outro autor se juntar, não tenho que entrar manualmente e adicioná-lo ao pulldown.

O pulldown lista o autor A e o autor B, entre os outros. Se alguém clica no autor A, ele deve poder ver todos os livros que o autor A escreveu e clicar sobre eles para visualizá-los. O mesmo vale para o autor B.

Solutions Collecting From Web of "Como mostrar as inputs em uma taxonomia personalizada pelo autor?"

Bem, quando você precisa modificar um tema, você cria um “tema filho”. Existem boas instruções sobre como aqui .

Então, simplesmente criamos uma cópia segura do código modificado em uma pasta, o outro tema não sobrescreva.

O que eu acho que você quer fazer é criar um tipo de publicação personalizado “Livro” e registrar esse tipo de publicação para uma taxonomia de “Autor”. Aqui está um exemplo:

function book_object() { register_post_type('book', array( 'labels' => array( 'name' => __('Books', 'textdomain'), 'singular_name' => __('Book', 'textdomain'), 'add_new' => __('Add New', 'textdomain'), 'add_new_item' => __('Add New Book', 'textdomain'), 'edit_item' => __('Edit Book', 'textdomain'), 'new_item' => __('New Book', 'textdomain'), 'view_item' => __('View Book', 'textdomain') ), 'description' => 'People like books.', 'register_meta_box_cb' => 'book_fields', 'public' => true, 'menu_position' => 20, 'supports' => array('title', 'editor', 'thumbnail',), 'hierarchical' => true ) ); } function book_fields() { add_meta_box('book_details', __('Book Details', 'textdomain'), 'book_fields_cb', 'book', 'normal', 'high'); function book_fields_cb($post) { $value = get_post_meta($post->ID, 'pubdate', true); echo '
'; echo '
'; $value = get_post_meta($post->ID, 'field_2', true); echo '
'; echo '
'; } }

Isso cria o object Book.

Para criar taxonomia para Autores:

 function author_taxonomy() { $labels = array( 'name' => _x( 'Authors', 'taxonomy general name' ), 'singular_name' => _x( 'Author', 'taxonomy singular name' ), 'search_items' => __( 'Search Authors' ), 'all_items' => __( 'All Authors' ), 'parent_item' => __( 'Parent Author' ), 'parent_item_colon' => __( 'Parent Author:' ), 'edit_item' => __( 'Edit Author' ), 'update_item' => __( 'Update Author' ), 'add_new_item' => __( 'Add New Author' ), 'new_item_name' => __( 'New Author' ), 'menu_name' => __( 'Authors' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'authors', 'hierarchical' => true, 'with_front' => false ), ); register_taxonomy('author', array('book'), $args); } 

Então, criamos essas funções no WordPress, assim:

 add_action('init', 'my_init'); function my_init() { book_object(); author_taxonomies(); } 

Essa última parte geralmente é colocada no topo do arquivo. Algumas pessoas deixam as linhas add_action abaixo dos blocos de código que invocam, mas eu gosto de aninhar as chamadas de ação sucessivas no topo para ajudar a entender tudo para mim.

Este código basicamente faz tudo por seu solitário em um arquivo chamado functions.php – exceto que você não coloca as funções.php na pasta do tema antigo.

Você cria uma nova pasta de temas, com um novo estilo.css – tudo o que precisa ter é o seguinte comentário na parte superior:

 /* Theme Name: My custom book portal Description: Child theme of OLD-THEME-NAME Template: OLD-THEME-SLUG Text Domain: textdomain */ 

Então, agora você tem uma nova pasta em / wp-content / themes / que pode ser chamado o que quiser. Contém style.css e functions.php com todo o código acima. Você pode adicionar um arquivo a esta pasta que agora irá ajudá-lo a exibir os dados; vamos chamar taxonomy-book.php e colocá-lo dentro da pasta do tema infantil.

Gostaria de sugerir que você comece copiando todo o código do arquivo taxonomy.php do seu tema atual, ou se nenhum desses arquivos existe no seu tema atual, procure arquivo.php. Esses arquivos começarão com quase tudo o que você está procurando.

Como obter usuários nesta página nos traz de volta ao seu problema original – o menu. Nós temos os dados que exibirá agora, nós temos as páginas às quais suas seleções serão vinculadas – precisamos do menu suspenso. Eu gosto apenas de colocá-lo na navegação.

Em Aparência-> Menus, agora você pode adicionar os itens de taxonomia a qualquer menu de navegação nas checkboxs de seleção WP no lado esquerdo do criador do menu. Se você gostaria que eu escrevesse um pequeno widget rápido, eu procurarei sua resposta.