2017-10-05 7 views
1

J'ai créé un nom de type de message personnalisé Dog Food Quiz comme un plugin WordPress. Le type de publication s'affiche, mais lorsque je crée le fichier single-dog-food-quiz.php, la page ne montre rien. Voici mon code:Wordpress Single Type Post Type de page ne fonctionne pas

Pour chien alimentaire quiz.php:

function dog_food_quiz() { 
    register_post_type('dog-food-quizzes', 
     array(
     'labels' => array(
      'name' => 'Dog Food Quiz', 
      'singular_name' => 'Dog Food Quiz', 
      'add_new' => 'Add New', 
      'add_new_item' => 'Add New Dog Food Quiz', 
      'edit' => 'Edit', 
      'edit_item' => 'Edit Dog Food Quiz', 
      'new_item' => 'New Dog Food Quiz', 
      'view' => 'View', 
      'view_item' => 'View Dog Food Quiz', 
      'search_items' => 'Search Dog Food Quizzes', 
      'not_found' => 'No Dog Food Quizzes found', 
      'not_found_in_trash' => 'No Dog Food Quizzes found in Trash', 
      'parent' => 'Parent Dog Food Quiz' 
     ), 

     'public' => true, 
     'menu_position' => 15, 
     'supports' => array('title', 'editor', 'comments', 'thumbnail', 'custom-fields'), 
     'taxonomies' => array(''), 
     'menu_icon' => 'dashicons-testimonial', 
     'has_archive' => true 
    ) 
); 
} 

add_action('init', 'dog_food_quiz'); 

add_filter('template_include', 'include_template_function', 1); 

function include_template_function($template_path) { 
    if (get_post_type() == 'dog_food_quizzes') { 
     if (is_single()) { 
     // checks if the file exists in the theme first, 
     // otherwise serve the file from the plugin 
     if ($theme_file = locate_template(array ('single-dog-food-quiz.php'))) { 
      $template_path = $theme_file; 
     } else { 
      $template_path = plugin_dir_path(__FILE__) . '/single-dog-food-quiz.php'; 
     } 
    } 
} 
    return $template_path; 
} 

Voici le code pour un seul chien alimentaire quiz.php:

<?php get_header(); ?> 
<?php while (have_posts()) : the_post(); ?> 
    <main id="site-main" class="main-page article-page" data-ad-slots="top,rightrail1,stickyrightrail2,bottom,oop"> 
     <div class="inner dog-food-quiz-top"> 
      <section id="content"> 
       <h1>Can my Dog Eat This?</h1> 
       <div class="dfq-hero"> 
        <img src="/img/dog-food-quiz/hero.jpg" alt="dog with 2 bowls"> 
       </div><!-- dog food quiz hero --> 
       <p class="dfq-intro">Think again before tossing your dog that last bit from your dinner plate. How well do you know which human foods are okay for your canine friend to eat?</p> 
       <span class="dfq-disclaimer">*Always consult your veterinarian to help you understand the best diet for your dog.</span> 
       <div class="progress-container"><progress value="0" max="100" id="progressBar" style="width: 0%"></progress></div> 
       <div class="food-module"> 
        <div class="food-box"> 
         <span class="food-title">Apples?</span> 
         <img src="/img/dog-food-quiz/redapple200.jpg" alt="apple"> 
         <span class="correct" style="display: none;">Correct!</span> 
         <span class="incorrect" style="display: none;">Incorrect!</span> 
        </div><!-- food box --> 
        <div class="food-description" style="display: none;"> 
         <span>Remove the seeds and stem - then you have a sweet treat</span> 
        </div><!-- food description --> 
        <a class="yes-answer correct">YES</a> 
        <a class="no-answer incorrect">NO</a> 
       </div><!-- food module -->   
       <div class="results-block" style="display:none;"> 
        <div class="score-card"> 
         <h3 class="results-title"></h3><!-- results-title --> 
         <span class="results-comment"></span><!-- results-comment --> 
         <img src="" class="results-image" alt=""> 
        </div><!-- score-card --> 
        <div class="results-description"> 
         <p class="mobile-results"></p> 
         <p class="tablet-results"></p> 
         <div class="addthis_inline_share_toolbox"></div> 
        </div><!-- results-description --> 
       </div><!-- results-block --> 

      <div class="ad callout"> 
       <span class="ad" id="dfp_bottom"></span> 
      </div> 
     <div class="grid m-2col"> 
      <h2 class="title"><small>Most Popular In</small> 
       Did You Know? 
      </h2> 
     </div> 
    </section> 
    <aside id="sidebar-right" class="sidebar no-tablet"> 
     <div id="sidebar-right-contents"> 
      <div class="ad desktop just-tablet-up" id="sidebar-right-ad-1"> 
       <span class="ad" id="dfp_rightrail1"></span> 
       </div> 
      </div> 
     </aside> 
    </div> 
    </main> 

    <?php endwhile; ?> 

    <?php get_footer(); ?> 

Suis-je manque quelque chose ici? Tout ce que je reçois est l'en-tête et le pied de page et une page blanche. S'il vous plaît aider.

Répondre

0

Vous pouvez essayer de renommer votre modèle en single-dog-food-quizzes.php (c'est-à-dire en ajoutant single- avec le nom du type de message personnalisé, dog-food-quizzes, que vous avez enregistré).

De même, il est bon de mentionner que c'est une bonne pratique d'utiliser des traits de soulignement et non des traits d'union lors de l'enregistrement d'un type de poteau personnalisé composé de plus d'un mot. Donc, dans votre cas:

register_post_type('dog_food_quizzes')

+0

Merci d'avoir répondu à Jase. J'ai renommé le fichier comme vous l'avez suggéré et je ne le montre toujours pas. – MikeL5799

+0

Merci j'ai essayé encore rien – MikeL5799

0

Il pourrait être mieux si vous nommez votre type de poste personnalisé (CPT) comme ceci: chien-food-questionnaire (singulier)

Ensuite, vous écrivez l'unique fichier dog-food-quiz.php dans votre thème.

For Custom Post Types, should the slug be singular or plural?

+0

Je ne comprends pas non plus pourquoi vous avez écrit add_filter ('template_include', 'include_template_function', 1); ... et le code qui suit. Si j'ai raison, vous n'avez pas besoin de le faire car WordPress le fait automatiquement. Voici la hiérarchie de modèles: https://developer.wordpress.org/themes/basics/template-hierarchy/ –

+0

Merci. J'ai changé le nom et toujours pas de chance – MikeL5799

+0

Avez-vous également supprimé le code après 'add_filter'? –