sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Wordpress-mall:Objektet hittades inte

Det hände för att det inte är så mallar fungerar i WordPress. Du skapar inte en specifik fil för varje sida på din webbplats. Du skapar sidor, och sedan tilldelar du mallar till dem och låter WordPress ta reda på hur du kommer åt och skapar åtkomst till dessa sidor. Att försöka få direktåtkomst till en av dessa filer kommer att ge en 404 eftersom WordPress på grund av det faktum att en sida (i wp land) med det namnet finns inte.

Det faktum att det gjorde fungerade när du försökte gå direkt till index.php beror på att i mallhierarkin , index.php är den sista filen WP letar efter när den söker efter en mall för att visa din sida. Eftersom den här filen är ett måste i varje tema hittades den, och därmed ingen 404s.

Det finns något som heter permalänkar som låter dig skapa vänliga webbadresser till din webbplats utan att ändra några namn i dina mallfiler. Det skulle vara omöjligt om dina webbadresser var direkt kopplade till filnamnen.

WordPress Theme Handbook har en ganska snygg artikel om sidmallar , och codex kan ge dig några tips om hur du kommer igång med dem. Smashing Magazine har en fantastisk artikel, skriven av Nick Schäferhoff, som ger detaljerade instruktioner om hur man skapar en sidmall.

I ett nötskal, och hämtat från WordPress-temat Twentyfourteen, fungerar en sidmall ungefär så här

<?php
/**
 * Template Name: Full Width Page
 *
 * @package WordPress
 * @subpackage Twenty_Fourteen
 * @since Twenty Fourteen 1.0
 */

get_header(); ?>

<div id="main-content" class="main-content">

<?php
    if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
        // Include the featured content template.
        get_template_part( 'featured-content' );
    }
?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">
            <?php
                // Start the Loop.
                while ( have_posts() ) : the_post();

                    // Include the page content template.
                    get_template_part( 'content', 'page' );

                    // If comments are open or we have at least one comment, load up the comment template.
                    if ( comments_open() || get_comments_number() ) {
                        comments_template();
                    }
                endwhile;
            ?>
        </div><!-- #content -->
    </div><!-- #primary -->
</div><!-- #main-content -->

<?php
get_sidebar();
get_footer();

Intressant nog är kommentarsdelen Template Name: Full Width Page gör den här mallen global, vilket innebär att den kan nås var som helst på din webbplats (ta en titt på dokumenten för mer information om hierarki). När du har något liknande på din mall, skapa en sida och tilldela sedan din mall till den. Du borde vara gyllene!

EDIT:

Fortfarande i tid, kolla denna häftiga infografik som visar hur mallar fungerar i WP-land, och hur varje sida så småningom renderas till index.php , om ingen annan mallfil hittas.




  1. MySQL - Storleksbegränsningar till heltalskolumner

  2. Exportera databaser och tabeller med PhpMyAdmin

  3. Hur kan jag ställa in en standardsortering för tabeller i PHPMyAdmin (dvs alltid primärnyckel - fallande)

  4. Automatisera överföring av csv-fil till MySQL