мой пользовательский тип сообщения не отображается в соответствии с категорией в WordPress

php wordpress

81 просмотра

1 ответ

Я создал собственный тип записи на имя «Телефоны». В категории у меня есть 4 марки, которые я хочу, чтобы у каждого телефона была одна категория на странице категории.

мой код функции:

function create_phone_post_type() {
register_post_type( 'phones',
    array(
        'labels' => array(
            'name' => 'phones',
            'singular_name' => 'phones',
            'add_new' => 'Add New',
            'add_new_item' => 'Add New phone',
            'edit_item' => 'Edit phone',
            'new_item' => 'New phone',
            'view_item' => 'View phone',
            'search_items' => 'Search phone',
            'not_found' =>  'Nothing Found',
            'not_found_in_trash' => 'Nothing found in the Trash',
            'parent_item_colon' => ''
        ),
        'taxonomies' => array('category',),
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'query_var' => true,
        'has_archive'         => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'menu_position' => null,
        'supports' => array( 'title',
            'editor',
            'excerpt',
            'trackbacks',
            'custom-fields',
            'comments',
            'revisions',
            'thumbnail',
            'author',
            'page-attributes',)
            )
            );
            }
      add_action( 'init', 'create_phone_post_type' );

и на странице категории:

   <?php if(have_posts()) : ?>
    <div class="title_page_category">
        <h5> <?php printf( __( 'Category: %s', 'anaximander' ), '<span>' . single_cat_title( '', true ) . '</span>' );?></h5>
    </div>

    <?php
        $args = array('post_type' => 'phones',
        'posts_per_page' => 20);
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();?>
            <div class="col-lg-3">
                    <div class="phone_thumbnail">
                        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" >
                            <?php the_post_thumbnail(); ?>
                        </a>
                    </div>
                    <div class="phone_title">
          <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" >
                            <?php the_title(); ?>
                        </a>
                    </div>

           </div>

            <?php endwhile; ?>


     <?php else : ?>
     <?php endif; ?>

Но когда я добавил несколько телефонов в разные категории, все телефоны ушли внутрь в одну категорию.

Я действительно смущен. Пожалуйста, помогите мне :(

Автор: sajjad Источник Размещён: 08.11.2019 11:13

Ответы (1)


-1 плюса

Решение
  • Мы проверили ваш пользовательский тип записи и пользовательский код таксономии, и я думаю, что проблема в вашем пользовательском коде таксономии. Ваше имя пользовательской таксономии - «категория», в которой возникла проблема, поскольку «категория» - это имя пост-таксономии WordPress по умолчанию.

Пожалуйста, добавьте приведенный ниже код в файл functions.php, чтобы создать собственный тип записи и историю пользовательских текстов в WordPress.

Пользовательский тип сообщения

<?php 
function my_custom_phones() {

  $labels = array(

    'name'               => _x( 'phones', 'post type general name' ),

    'singular_name'      => _x( 'phones', 'post type singular name' ),

    'add_new'            => _x( 'Add New', 'phones' ),

    'add_new_item'       => __( 'Add New phones' ),

    'edit_item'          => __( 'Edit phones' ),

    'new_item'           => __( 'New phones' ),

    'all_items'          => __( 'All phones' ),

    'view_item'          => __( 'View phones' ),

    'search_items'       => __( 'Search phones' ),

    'not_found'          => __( 'No phones found' ),

    'not_found_in_trash' => __( 'No phones found in the Trash' ), 

    'parent_item_colon'  => '',

    'menu_name'          => 'Phones'

  );

  $args = array(

    'labels'        => $labels,

    'description'   => 'Holds our phones and phones specific data',

    'public'        => true,

    'menu_position' => 5,

    'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),

    'has_archive'   => true,

  );

  register_post_type( 'phones', $args ); 

}

add_action( 'init', 'my_custom_phones' );  ?>

Пользовательский код таксономии

<?php
function my_taxonomies_Phones() {
  $labels = array(
    'name'              => _x( 'Phones Categories', 'taxonomy general name' ),
    'singular_name'     => _x( 'Phones Category', 'taxonomy singular name' ),
    'search_items'      => __( 'Search Phones Categories' ),
    'all_items'         => __( 'All Phones Categories' ),
    'parent_item'       => __( 'Parent Phones Category' ),
    'parent_item_colon' => __( 'Parent Phones Category:' ),
    'edit_item'         => __( 'Edit Phones Category' ), 
    'update_item'       => __( 'Update Phones Category' ),
    'add_new_item'      => __( 'Add New Phones Category' ),
    'new_item_name'     => __( 'New Phones Category' ),
    'menu_name'         => __( 'Phones Categories' ),
  );
  $args = array(
    'labels' => $labels,
    'hierarchical' => true,
  );
  register_taxonomy( 'Phones_cat', 'Phones', $args );
}
add_action( 'init', 'my_taxonomies_Phones', 0 );
?>

Используйте код запроса ниже, а не код запроса. В списке запросов отобразится список публикаций.

 <?php
$catid = $wp_query->get_queried_object_id();  /* get category id of current category  */

    $args = array(
        'posts_per_page' => 20,
        'offset' => 0,
        'tax_query' => array(
            array(
                'taxonomy' => 'Phones_cat',   /* Your custom post type category name*/
                'field'    => 'term_id',
                'terms'    => $catid,
            ),
        ),
        'orderby' => 'rand',
        'post_type' => 'phones',  
        'post_status' => 'publish'
    );
    $queryall = new WP_Query($args);

    ?>
Автор: shivlal Размещён: 20.08.2016 12:07
Вопросы из категории :
32x32