Nie umiem właściwie zedytować konstrukcji if else

0

Witam,

chciałabym dodać formularz [contact-form-7 id="8032" title="Zamówienie"] do strony o ID 1198. Zwróćcie proszę uwagę, że dla tej strony istnieją już inne instrukcje. Chodzi o to, aby tylko na tej jednej stronie wyświetlał się ten jeden konkretny formularz.
Dołączam plik page.php i proszę o stosowną edycję. Rozumiem mniej więcej kod, ale nie potrafię w nim pisać. Zatem będę ogromnie wdzięczna za gotowe rozwiązanie.

<?php get_header(); ?>
<?php get_template_part( 'spis'); ?>
<!-- treść strony -->
	
	<div id="szkielet">
		<div id="tresc">
			<div id="tresc_kolumna1">
				
				<!-- treść kolumny pierwszej -->
				
				
				<?php if (have_posts()) : ?>
				<?php while (have_posts()) : the_post(); ?>
					<h1><a href="<?php the_permalink(); ?>" title="<?php the_permalink(); ?>" 

rel="bookmark"><?php echo ucfirst(get_the_title()); ?></a></h1>
					<?php the_content(); ?>
					
						<?php if (is_page('16')){ ?>
											
<?php } ?>

				<?php endwhile; ?>
			<?php else : ?>
				<h2>To czego szukasz nie istnieje</h2>
			<?php endif; ?>
				<br />
			<!-- stopka kolumny pierwszej -->
				

				<div id="tresc_kolumna1_szkielet">
					<div class="tresc_kolumna1_logo">
					
					</div>

					<!-- <div class="tresc_kolumna1_logo">
						<a href="http://twojagosposia.pl/" target="_blank"><img class="logo2" 

src="<?php echo get_template_directory_uri(); ?>/images/logo3.png" alt="logo TwojaGosposia" width="141" height="50" 

/></a><br />
						<a href="http://twojagosposia.pl/" target="_blank" style="margin-left: 

40px;">polecamy!<img alt=""  class="tresc_kolumna1_strzalka" src="<?php echo get_template_directory_uri(); ?

>/images/s_mala.png"  width="18" height="18" /></a>
					</div> -->
					
					<?php
						$f_ids = array(181, 418, 4190, 19, 861, 202, 306, 3445, 324, 336, 330, 326, 

187, 415, 412, 4464, 186, 695, 690, 679, 4379, 4480, 4472, 6764, 6763, 6762, 1198);
				
						if( in_array( get_the_ID(), $f_ids) ) {     
					?>	<div id="footer_form_box">
								<h3>Skoro jesteś zainteresowany naszą usługą <br/>prosimy o 

kontakt w celu dokonania wyceny.</h3>
								<h1>Skontaktuj się z nami!</h1>
								<div class="clear"></div>
								<div id="footer_form">
									<?php	echo do_shortcode('[contact-form-7 

id="6587" title="Wycena"]'); ?>
								</div>

								</div><!--footer_form-->
							</div><!--footer_form-->	
					<?php	 
						}
						else {
					?>
						<div class="tresc_kolumna1_kontakt">
							<div class="kontakt1">Szybki kontakt:</div>
							<div class="kontakt2">517 274 200<br /><a 

href="/cdn-cgi/l/email-protection#ef9f8a9d9c8081868eaf9f8a9d9c8081868ec19f83cf">[email protected]</a></div>
						</div>
						<img class="tresc_kolumna1_obrazek" src="http://www.personia.pl/wp-

content/uploads/2015/02/telefon.png" alt="kontakt" width="45" height="53" />					
						
					<?php
						}
					?>

				</div>			
			
			</div>
		
			<?php get_template_part( 'kol2i3'); ?>
			
		</div>
	</div>
	
<?php get_footer(); ?>

poprawienie znaczników <code class="php"> - @furious programming

0

1.Tak naprawdę nic nie napisałaś. Kod wyjęty nie wiadomo skąd i nie wiadomo co robiący.
2.A ja będę ogromnie wdzięczny za wysprzątanie mi mieszkania. Dogadamy się?

0

Szablon strony w pliku page.php, strona postawiona na WordPressie.
Kod wykonuje taką instrukcję - na stronach o wymienionych ID w stopce wyświetla formularz Wycena, na pozostałych stronach w stopce wyświetla Szybki Kontakt.
Nie mam czasu ogarnąć swojego mieszkania a co dopiero czyjeś :D

1

Straszny bajzel w tym kodzie. Jak korzystasz z if else to używaj jednego kanonu zapisu.

<?php if( ... ) : ?>

<?php elseif( ... ) : ?>

<?php else : ?>

<?php endif; ?>

lub 

<?php if( ... ) { ?>

<?php } elseif( ... )  {?>

<?php } else { ?>

<?php }?>

Polecam pierwszy sposób, bo wiadomo o co chodzi, <?php } ?> mówi samo za siebie.

Oto rozwiązanie, tak mi się wydaje, że nie przeoczyłem żadnego domykającego div'a oraz, że o to chodziło:

<?php get_header(); ?>
<?php get_template_part( 'spis'); ?>
<?php $f_ids = array(181, 418, 4190, 19, 861, 202, 306, 3445, 324, 336, 330, 326,
                    187, 415, 412, 4464, 186, 695, 690, 679, 4379, 4480, 4472, 6764, 6763, 6762); ?>
<!-- treść strony -->
<div id="szkielet">
    <div id="tresc">
        <div id="tresc_kolumna1">
            <!-- treść kolumny pierwszej -->
            <?php if (have_posts()) : ?>
                <?php while (have_posts()) : the_post(); ?>
                    <h1>
                        <a href="<?php the_permalink(); ?>" title="<?php the_permalink(); ?>" 
                        rel="bookmark"><?php echo ucfirst(get_the_title()); ?>
                        </a>
                    </h1>
                    <?php the_content(); ?>
                    <?php if (is_page('16')){ ?> <!-- Co to za if? oO -->
                    <?php } ?>
                <?php endwhile; ?>
            <?php else : ?>
                <h2>To czego szukasz nie istnieje</h2>
            <?php endif; ?>
                <br />
                <!-- stopka kolumny pierwszej -->
                <div id="tresc_kolumna1_szkielet">
                    <div class="tresc_kolumna1_logo">
                    </div>
                <!-- <div class="tresc_kolumna1_logo">
                    <a href="http://twojagosposia.pl/" target="_blank"><img class="logo2" 
                    
                    src="<?php echo get_template_directory_uri(); ?>/images/logo3.png" alt="logo TwojaGosposia" width="141" height="50" 
                    
                    /></a><br />
                    <a href="http://twojagosposia.pl/" target="_blank" style="margin-left: 
                    
                    40px;">polecamy!<img alt=""  class="tresc_kolumna1_strzalka" src="<?php echo get_template_directory_uri(); ?>/images/s_mala.png"  width="18" height="18" /></a>
                </div> -->
                <?php if( in_array( get_the_ID(), $f_ids)) : ?>    
                    <div id="footer_form_box">
                        <h3>Skoro jesteś zainteresowany naszą usługą <br/>prosimy o 
                            kontakt w celu dokonania wyceny.
                        </h3>
                        <h1>Skontaktuj się z nami!</h1>
                        <div class="clear"></div>
                        <div id="footer_form">
                            <?php echo do_shortcode('[contact-form-7 id="6587" title="Wycena"]'); ?>
                        </div>
                    </div>
                    <!--footer_form-->
                </div>
                <!--footer_form-->    
                <?php elseif(get_the_ID() == '1198') : ?>
                    <div id="footer_form_box">
                        <h3>Skoro jesteś zainteresowany naszą usługą <br/>prosimy o 
                            kontakt w celu dokonania wyceny.
                        </h3>
                        <h1>Skontaktuj się z nami!</h1>
                        <div class="clear"></div>
                        <div id="footer_form">
                            <?php echo do_shortcode('[contact-form-7 id="8032" title="Zamówienie"]'); ?>
                        </div>
                    </div>
                    <!--footer_form-->
                </div>
                <!--footer_form-->    
                <?php else : ?>
                    <div class="tresc_kolumna1_kontakt">
                        <div class="kontakt1">Szybki kontakt:</div>
                        <div class="kontakt2">517 274 200<br />
                            <a href="/cdn-cgi/l/email-protection#ef9f8a9d9c8081868eaf9f8a9d9c8081868ec19f83cf">[email protected]</a>
                        </div>
                    </div>
                    <img class="tresc_kolumna1_obrazek" src="http://www.personia.pl/wp-content/uploads/2015/02/telefon.png" alt="kontakt" width="45" height="53" />                    
                <?php endif; ?>
            </div>
        </div>
        <?php get_template_part( 'kol2i3'); ?>
    </div>
</div>
<?php get_footer(); ?>
1

Ten kod to koszmar. Polecam zlecić komuś refaktoryzację albo napisanie tego od nowa.
Jeśli chcesz się w to samemu bawić to otwórz w IDE podświetlającym składnię PHP (np. Eclipse PDT) i spróbuj sam zrefaktoryzować, np. tak:
http://4programmers.net/Forum/1145991

0

@Fi3rce
Bardzo dziękuję za pomoc - to jest dokładnie to, o co mi chodziło :) Okazuje się, że nie byłam tak daleko od rozwiązania. Próbowałam zastosować elseif, ale niestety wiecznie zwracało błąd. Prześledziłam uważnie Twój kod, porównując z tym co mam w szablonie. Czy oprócz zastosowania elseif warunkiem uzyskania pożądanego przeze mnie efektu, było wstawienie tego kodu jeszcze przed sekcją "treść strony"?

<?php $f_ids = array(181, 418, 4190, 19, 861, 202, 306, 3445, 324, 336, 330, 326,
                    187, 415, 412, 4464, 186, 695, 690, 679, 4379, 4480, 4472, 6764, 6763, 6762); ?>

dodanie znacznika <code class="php"> - @furious programming

0

Nie wiem jaki błąd miałaś zwracany, więc trudno mi powiedzieć. Tą tablicę przeniosłem na górę dla porządku, no i miałaś w niej na końcu ID, który trzeba było wywalić i wrzucić do warunku w elseif.

0

Z komunikatu błędu zapamiętałam "unexpected elseif in line...".

Zauważyłam też, że ta strona ładuje się teraz dużo szybciej. Czy to jest efektem uporządkowania kodu?

0

Oznacza to, że coś było nie tak w ifach. Prawdopodobnie pomieszałaś coś w składni, co swoją drogą jest skutkiem nieuporządkowanego kodu ;)

Na drugie pytanie nie jestem w stanie odpowiedzieć. Wydaje mi się, że tak niewielka zmiana nie byłaby w stanie poprawić szybkiści ladowania w sposób, który odbierze człowiek. To co wiem na sto procent, to że warto dbać o czystość kodu, bo pomaga to również osobom takim jak my w rozwiązaniu problemu. Na pewno strona będzie działała szybciej, jak nie będą się tam przewijały takie ify widmo :D

<?php if (is_page('16')){ ?> <!-- Co to za if? oO -->
<?php } ?>
0
Fi3rce napisał(a):

Prawdopodobnie pomieszałaś coś w składni, co swoją drogą jest skutkiem nieuporządkowanego kodu ;)

Ja nie pisałam tego kodu, a po każdej swojej próbie edycji przywracałam plik z oryginalnej wersji. Ktoś już wcześniej musiał nabałaganić. Pewnie różne osoby wprowadzały edycje. Zresztą, jak teraz patrzę - podobne rzeczy dzieją się w innych plikach strony.
A if widmo bomba :D
Fajnie, sporo się dzisiaj nauczyłam. Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1