php, проблема с вложенностью div

#php #html #wordpress

#php #HTML #wordpress

Вопрос:

Я использую оператор php if для отображения графики, когда пользователи не вошли в систему, но проблема в том, что a.) Я пока не силен в php и b.) оператор if помещает мою правую боковую панель в мой #contentleft div, хотя они должны быть братьями и сестрами. Можете ли вы сказать мне, что я здесь делаю не так?

код:

 <div id="contentleft">

    <?php
    if ( is_user_logged_in() ) {
            echo 'Welcome, registered user!';

    } else {
            echo '<div id="intro"><p><a href="http://www.wespeakfashion.com/submissions">Sign up</a> and start posting!</p></div>';

    };
    ?>

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1>

    <p class="date"><b>Posted on</b> | <?php the_time('F j, Y'); ?> | <?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?></p>
        <?php global $wpdb;
                $query = "SELECT `ID`, `guid` FROM `$wpdb->posts` WHERE `post_type` = 'attachment' AND `post_parent` = '{$post->ID}'";
                $adimages = $wpdb->get_results($wpdb->prepare($query), OBJECT);
        // To display the first image.. ?>

        <img style="float: center; height: 500px;" src="<?php if(is_public_submission()){echo $adimages[0]->guid;} ?>" />

    <?php the_content(__('Read more'));?><div style="clear:both;"></div>

    <div class="bt-links"><strong>Category:</strong> <?php the_category(', ') ?><br /><?php the_tags('<strong>Tags:</strong> ',' > '); ?></div>

    <!--
    <?php trackback_rdf(); ?>
    -->

    <h3>Comments</h3>
    <?php comments_template(); // Get wp-comments.php template ?>

    <?php endwhile; else: ?>

    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>

    </div>

<?php include(TEMPLATEPATH."/r_sidebar.php");?>

</div>
  

Большое спасибо.

Ответ №1:

Я в замешательстве. Вы включаете r_sidebar.php внутри вашего #contentLeft div. Не следовало бы вам переместить это из div?

Вместо:

 <?php include(TEMPLATEPATH."/r_sidebar.php");?>
</div>
  

Делать:

 </div>
<?php include(TEMPLATEPATH."/r_sidebar.php");?>
  

Извините, если это не ответ (это кажется слишком простым), но если бы вы могли подробнее рассказать о своей проблеме, я уверен, что смог бы больше помочь!

Комментарии:

1. Да, это приходило мне в голову, и я, вероятно, просто воспользуюсь этим решением. Для меня странно то, что #r_sidebar является братом #contentleft , когда я вхожу в систему, но затем становится его дочерним элементом, когда я выхожу из системы. Поскольку я сам пишу PHP, я решил, что это как-то связано с моими операторами if. Спасибо, @andrewpthrop.