WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   WordPress: Funktion fungerar inte i header.php, sidebar.php och footer.php (https://www.wn.se/forum/showthread.php?t=1051934)

JesperA 2012-01-24 04:46

WordPress: Funktion fungerar inte i header.php, sidebar.php och footer.php
 
Tjenare!

Har en funktion i WordPress för att läsa en fil, hämta en viss rad och visa den, detta fungerar jättebra i alla huvudtemplate filer som tex: index.php, category.php, search.php, archive.php, page.php, osv osv, men om jag försöker echoa ut funktionen i header.php, sidebar.php eller footer.php så visas ingenting. Kommer inte på varför.

Funktionen: (ligger i functions.php)

PHP-kod:

// Read rows from file, used in the language system if the user have not specified a .po/.mo language file
function readLine($readfile$line_num$delimiter="\n")
{
    
/*** set the counter to one ***/
    
$i 1;

    
/*** open the file for reading ***/
    
$fp fopen$readfile'r' );

    
/*** loop over the file pointer ***/
    
while ( !feof $fp) )
    {
        
/*** read the line into a buffer ***/
        
$buffer stream_get_line$fp1024$delimiter );
        
/*** if we are at the right line number ***/
        
if( $i == $line_num )
        {
            
/*** return the line that is currently in the buffer ***/
            
return $buffer;
        }
        
/*** increment the line counter ***/
        
$i++;
        
/*** clear the buffer ***/
        
$buffer '';
    }
    return 
false;
}
$language_path TEMPLATEPATH '/language/';
$readfile $language_path 'swedish.html'


Och den används såhär:

PHP-kod:

   <?php echo readLine($readfile1); // Price? ?>

Så japp, någon som vet varför denna funktionen inte fungerar när man echoar ut den från header.php, sidebar.php och footer.php?

Sidorna som fungerar, som tex index.php ser ut såhär:

PHP-kod:

<?php get_header(); ?>

<?php get_sidebar(); // get_sidebar hämtar sidebar.php och funktionen fungerar inte från sidebar.php ?>

<?php echo readLine($readfile1); // Price? ?>  // Fungerar här




<?php get_footer(); ?>


HapiDjus 2012-01-24 18:49

Har du satt $readfile till något då?

JesperA 2012-01-24 19:35

Citat:

Ursprungligen postat av HapiDjus (Inlägg 20430820)
Har du satt $readfile till något då?

Well, lägger jag in:

PHP-kod:

$language_path TEMPLATEPATH '/language/'
$readfile $language_path 'swedish.html'

i header.php, sidebar.php och footer.php så fungerar det, men eftersom den redan ligger i functions.php som redan bör hämtas globalt av WordPress så borde jag kunna slippa det på något sätt.

JesperA 2012-01-24 20:39

Ok, kunde inte redigera ovanstående inlägg och hoppas det är ok att göra ett till på raken då:

Felmeddelandet glömde jag innan:

Notice: Undefined variable: readfile in /Users/admin/Sites/Rogatio/en/dev/wordpress/wp-content/themes/Doradus/header.php on line 87 Warning: fopen(): Filename cannot be empty in /Users/admin/Sites/Rogatio/en/dev/wordpress/wp-content/themes/Doradus/functions/wp-custom.php on line 83 Warning: feof() expects parameter 1 to be resource, boolean given in /Users/admin/Sites/Rogatio/en/dev/wordpress/wp-content/themes/Doradus/functions/wp-custom.php on line 86 Warning: stream_get_line() expects parameter 1 to be resource, boolean given in /Users/admin/Sites/Rogatio/en/dev/wordpress/wp-content/themes/Doradus/functions/wp-custom.php on line 89

Jag måste vara trög, har massa andra funktioner med variabler som fungerar precis överallt i WP temat men kommer inte på varför just denna vägrar vara "global"...

Jine 2012-01-24 21:05

Anledningen (precis som jag skrev på IRC) är pga. variablerna ligger i ett annat scope.

http://php.net/manual/en/language.variables.scope.php


Alla tider är GMT +2. Klockan är nu 00:27.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson