Změna functions.php

Štítky: , ,

Zvolené téma obsahuje celkem 14 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  admin a poslední změna je stará 8 let, 11 měsíců.

Aktuálně je na stránce zobrazeno 15 příspěvků - 1. až 15. (z celkem 15)
  • Autor
    Příspěvky
  • #23188

    helf.fox
    Participant

    Dobrý den,
    upravovala jsem část šablony functions.php a po aktualizaci mi nefungují ani stránky a bohuhužel ani přihlášení ke stránkám (v prohlížeči místo přihlášení vyběhne jen zcela prázdné okno). Můžete mi někdo prosím poradit, co s tím?

    #23189

    admin
    Keymaster
    Web

    Patrně došlo k nějaké nekorektní úpravě, což způsobilo chybu při zpracování PHP skriptu. Jakou používáte šablonu? Asi nejjednodušším způsobem je stažení původního instalačního balíčku, kde naleznete funkční soubor functions.php a zkopírujete na ho na FTP do adresáře s šablonou. Přijdete tak ale o všechny dosud provedené změny v tomto souboru. Nebo můžete přesně popsat, jakou změnu jste v souboru prováděla a můžeme se pokusit nalézt chybu…

    #23190

    helf.fox
    Participant

    Potřebovala, aby se příspěvky vypisovaly i na jiné stránce, než je stránka úvodní. Vložila jsem tam tedy kód:

    admin: Kód odebrán kvůli špatnému formátování.

    To fungovalo, ale chtěla jsem změnit vzhled příspěvků a tak jsem část:

    admin: Kód odebrán kvůli špatnému formátování.

    nahradila částí šablony single.php konkrétně tímto:

    admin: Kód odebrán kvůli špatnému formátování.

    Popsala jsem to asi hodně chaoticky, že?

    #23191

    helf.fox
    Participant

    Jinak funkční functions.php mám uložený v počítači, ale s FTP jsem ještě nepracovala.

    #23192

    admin
    Keymaster
    Web

    Můžete ten kód vložit ještě jednou a příslušnou část vždy označit myší a kliknout na tlačítko “CODE” v editoru? Takto je to dost nepřehledné…

    Na FTP se budete muset dostat stejně, takže pokud máte funkční soubor na počítači, tak je nejlepší ho tam hned nahrát. I když budete opravovat stávající chybu, tak tam budete muset nahrát úpravy také přes FTP, protože web kvůli chybě nefunguje.

    FTP jste musela použít při instalaci WordPressu? Jinak stačí použít např. program FileZilla, najít přihlašovací údaje k FTP (dostala jste je patrně od poskytovatele hostingu) a provést potřebné změny (zkopírování souboru).

    #23193

    helf.fox
    Participant

    Ok, omlouvám se. Tak ještě jednou. Nejprve jsem do function.php vložila toto:

    function wpb_latest_sticky() { 
    
    /* Get all sticky posts */
    $sticky = get_option( 'sticky_posts' );
    
    /* Sort the stickies with the newest ones at the top */
    rsort( $sticky );
    
    /* Get the 5 newest stickies (change 5 for a different number) */
    $sticky = array_slice( $sticky, 0, 5 );
    
    /* Query sticky posts */
    $the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
    // The Loop
    if ( $the_query->have_posts() ) {
    	$return .= '<ul>';
    	while ( $the_query->have_posts() ) {
    		$the_query->the_post();
    		$return .= '<li><a href="' .get_permalink(). '" title="'  . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
    		
    	}
    	$return .= '</ul>';
    	
    } else {
    	// no posts found
    }
    /* Restore original Post Data */
    wp_reset_postdata();
    
    return $return; 
    
    } 
    add_shortcode('latest_stickies', 'wpb_latest_sticky');

    To fungovalo, ale chtěla jsem změnit vzhled příspěvků a tak jsem část:

    if ( $the_query->have_posts() ) {
    	$return .= '<ul>';
    	while ( $the_query->have_posts() ) {
    		$the_query->the_post();
    		$return .= '<li><a href="' .get_permalink(). '" title="'  . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
    		
    	}
    	$return .= '</ul>';
    	
    } else {
    	// no posts found

    nahradila částí šablony single.php konkrétně tímto:

    <div id="text" class="widecolumn" role="main">
    
    	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
    		
    
    		<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
    			<h2><?php the_title(); ?></h2>
            <p class="postmetadata alt">
    					<small>
    						Tento příspěvek byl publikován
    						<?php /* This is commented, because it requires a little adjusting sometimes.
    							You'll need to download this plugin, and follow the instructions:
    							http://binarybonsai.com/wordpress/time-since/ */
    							/* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?>
    						 <?php the_time('d.m.Y') ?> v <?php the_time() ?>
    						v rubrice <?php the_category(', ') ?>.
    						
    
    						<?php if ( comments_open() && pings_open() ) {
    							// Both Comments and Pings are open ?>
    							You can <a href="#respond">leave a response</a>, or <a href="<?php trackback_url(); ?>" rel="trackback">trackback</a> from your own site.
    
    						
    
    						<?php } elseif ( comments_open() && !pings_open() ) {
    							// Comments are open, Pings are not ?>
    							
    
    						<?php } elseif ( !comments_open() && !pings_open() ) {
    							// Neither Comments, nor Pings are open ?>
    							
    
    						
    
    					</small>
    				</p>
    			<div class="entry">
    				<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
    
    				<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
    				<?php the_tags( '<p>Tags: ', ', ', '</p>'); ?>
    
    				
    
    			</div>
    			<?php } edit_post_link('Jste přihlášen. Můžete tuto stránku upravit.','','.'); ?>
    		</div>
    
    	<?php comments_template(); ?>
    
    	<?php endwhile; else: ?>
    
    		<p>Sorry, no posts matched your criteria.</p>
    
    <?php endif; ?>
    #23194

    admin
    Keymaster
    Web

    Perfektní, díky! Problém bude v tom, že ta nahrazená část začíná HTML kódem a přerušuje tak PHP, ale nemáte tam ukončovací znak. Měl by být na samém začátku nahrazovaného kódu, tedy nějak takto:

    ?>
    <div id="text" class="widecolumn" role="main">

    A na konci ho zase bude třeba odebrat, pokud v původním PHP souboru stále pokračuje PHP skript, tedy nějak takto:

    <?php endif;

    #23195

    helf.fox
    Participant

    Moc díky! To vypadá naprosto jednoduše.

    Problém je ale v tom, že jsem jen administrátor webu a tuto činnost přebírám netuším po kom. Bohužel tedy nemám přihlašovací údaje k FTP.

    Nedalo by se to nějak obejít?

    #23196

    admin
    Keymaster
    Web

    Bohužel… Přístupy k FTP budete muset získat, pokud je nemáte k dispozici, tak musíte jít složitější cestou přes majitele webu a hosting…

    #23197

    helf.fox
    Participant

    Toho jsem se bála. Každopádně Vám ale moc děkuji!!!

    Přeji krásný den!

    #23198

    helf.fox
    Participant

    Ještě jeden stupidní dotaz. Ty věci (fotky, stránky, příspěvky), co na tom webu byly, tam teoreticky jsou (tedy když obnovím functions.php, tak web normálně pojede), nebo se smazaly?

    #23199

    admin
    Keymaster
    Web

    Všechno zůstane funkční, jen musíte opravit chybu…

    #23200

    helf.fox
    Participant

    Ufff!

    #23214

    helf.fox
    Participant

    Dobrý den,
    mám ještě dotaz k včerejšímu tématu. Ajťákovi se podařilo dát stránky zase dokupy, ale přístup FTP adresáři jsem nedostala, takže chyby takového rozsahu musím řešit přes vedení podniku. Chtěla jsem se proto zeptat, jestli je možné si nějak/někde ověřit, jestli jsem v šabloně neudělala nějakou syntaktickou chybu než aktualizuju šablonu.
    Předem moc díky za odpověď.

    #23219

    admin
    Keymaster
    Web

    Poslední dotaz byl vytvořen v novém tématu.

Aktuálně je na stránce zobrazeno 15 příspěvků - 1. až 15. (z celkem 15)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti