Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Změna functions.php
Štítky: FTP, functions.php, php
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á 9 let, 4 měsíce.
-
AutorPříspěvky
-
13. května 2015 (11:29) #23188
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?13. května 2015 (11:35) #23189Patrně 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…13. května 2015 (11:44) #23190Potř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?
13. května 2015 (12:16) #23191Jinak funkční
functions.php
mám uložený v počítači, ale s FTP jsem ještě nepracovala.13. května 2015 (12:48) #23192Můž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).
13. května 2015 (13:10) #23193Ok, 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 »</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; ?>
13. května 2015 (13:14) #23194Perfektní, 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;
13. května 2015 (13:20) #23195Moc 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?
13. května 2015 (13:22) #23196Bohuž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…
13. května 2015 (13:24) #23197Toho jsem se bála. Každopádně Vám ale moc děkuji!!!
Přeji krásný den!
13. května 2015 (13:44) #23198Ješ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?13. května 2015 (13:46) #2319913. května 2015 (13:49) #23200Ufff!
14. května 2015 (10:19) #23214Dobrý 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ěď.15. května 2015 (9:57) #23219 -
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.