2017-05-24 19 views
0

友人私は20のテーマを使用して子供のテーマを作成し、そこにカテゴリと共に複数の製品を表示するカスタムポストをしようとしています。私は次のコードを使用し、すべての製品を表示するのにうまく動作しますが、製品の詳細を開くために任意の製品をクリックすると、404エラーが見つかりません。 この問題を解決するために、事前に感謝してください。ここWordPressカスタムポストタイプ21歳の子供のテーマ

function.phpファイル

add_action('init', 'rmcc_create_post_type'); 
function rmcc_create_post_type() { // clothes custom post type 
// set up labels 
$labels = array(
    'name' => 'Products', 
    'singular_name' => 'Product', 
    'add_new' => 'Add New', 
    'add_new_item' => 'Add New Product', 
    'edit_item' => 'Edit Product', 
    'new_item' => 'New Product', 
    'all_items' => 'All Products', 
    'view_item' => 'View Product', 
    'search_items' => 'Search Product', 
    'not_found' => 'No Product Found', 
    'not_found_in_trash' => 'No Product found in Trash', 
    'parent_item_colon' => '', 
    'menu_name' => 'Products', 
); 
register_post_type(
    'Products', 
    array(
     'labels' => $labels, 
     'has_archive' => true, 
     'public' => true, 
     'hierarchical' => true, 
     'supports' => array('title', 'editor', 'excerpt', 'custom-fields', 'thumbnail','page-attributes'), 
     'taxonomies' => array('post_tag', 'category'), 
     'exclude_from_search' => true, 
     'capability_type' => 'post', 
    ) 
); 
} 

// SHORTCODE 

add_shortcode('list-posts-basic', 'rmcc_post_listing_shortcode'); 
function rmcc_post_listing_shortcode($atts) { 
ob_start(); 


// define attributes and their defaults 
extract(shortcode_atts(array (
    'category' => '', 
), $atts)); 

// define query parameters based on attributes 
$options = array(
    'post_type' => 'Products', 
    'category_name' => $category, 
    'posts_per_page' => -1, 
    'order' => 'ASC', 
    'orderby' => 'title', 
); 

$query = new WP_Query($options); 
if ($query->have_posts()) { ?> 


<div class="gallery"> 
    <div class="gallery-sortbar" id="portfolio-filter"> 
    <a href="#all" title="">All</a> 
    <?php 
    /**Code for get terms*/ 
    // no default values. using these as examples 

    $taxonomy = 'category'; 
    $category_id = get_term_by('name',$category, $taxonomy); 
    $term_id = $category_id->term_id; 
    $child_categories = get_term_children($term_id, $taxonomy); 
    for($i=0;$i<count($child_categories);$i++){ 
      $category_name = get_term($child_categories[$i], $taxonomy); 
      $catreal_name = $category_name->name; 
      $catfilterfull = str_replace(' ', '', $catreal_name); 
      echo '<a href="#'.$catfilterfull.'" title="'.$catfilter.'">'.$catreal_name.'</a>'; 
     } 

    ?> 






    </div> 
<div class="gallery-viewer"> 
<div id="portfolio-wrapper"> 
<div id="portfolio-list" class="row"> 

     <?php while ($query->have_posts()) : $query->the_post(); ?> 
     <div id="post-<?php the_ID(); ?>" class="col-xs-12 col-sm-6 col-md-3 portfolio-item all 
     <?php 
      foreach((get_the_category()) as $catname) { 
      if ($catname->category_parent != '') { 
       $catfilter = ($catname->cat_name != 'local') ? $catname->cat_name . '' : ''; 
       $catfilterfull = str_replace(' ', '', $catfilter); 
       echo ' '.$catfilterfull; 
      } } 

      ?> 
     "> 
      <a href="<?php the_permalink(); ?>" class="thumbnail"> 
      <?php the_post_thumbnail(array(250, 250)); ?> 
      <div class="caption"><?php the_title(); ?></div></a> 

     </div> 
     <?php endwhile; 
     wp_reset_postdata(); ?> 
     </div> 
     <div class="clearboth"></div> 
     </div> 
    </div> 
    </div> 
<?php $myvariable = ob_get_clean(); 
return $myvariable; 
} 
} 

答えて

1

新しいカスタムポストタイプを追加するとき、あなたはパーマリンクをフラッシュする必要があるからコードです。

管理者の[設定] - > [固定リンク]に移動し、[保存]をクリックします。

+0

私は2日かかりました。ありがとう、友達。私は11分(サイトが許せば)の答えにする – user1231648

+0

あなたは歓迎して、私が助けることができた –

関連する問題