function return include('enphpfil.php')?

clinton4

Medlem
Hei,

La oss si at jeg har følgende funksjon:

PHP:
function blabla($content){

  if(1 == 1){

    return include('enphpfil.php');

  }
  else {

    return $content;

  }

}

enphpfil.php inneholder:

PHP:
<?php echo $content; ?>
<?php echo "Dette er enphpfil"; ?>

Hvordan kan jeg få innholdet i enphpfil.php til å returne her?
 

adeneo

Medlem
Skjønner ikke helt hva du prøver på, men for å returnere innholdet i filen:

PHP:
<?php

    function blabla($filename){ 
        return file_get_contents($filename, true); 
    } 

    echo blabla('enphpfil.php'); 
?>

hvis du prøver å returnere en variabel i filen eller noe sånt, litt uklart ?

PHP:
<?php
    function blabla($content){
        if(1 == 1){ 
            include('enphpfil.php'); // hvis $content finnes også her overskrives variabelen
        } 
        return $content; 
    } 

    echo blabla('Skriv dette dersom $content ikke finnes i filen ?');
?>
 
Sist redigert:

clinton4

Medlem
Hei Adeneo,

Litt dårlig forklart ja :)

Jeg har et WP side med et theme som henter "The Loop" via en function, så jeg her derfor ikke muligheten til å endre "The Loop" slik det er beskrevet i codexen (Page Templates « WordPress Codex)

Så da tenkte jeg å kjøre en filter hook for å endre "The Loop" der.

Så da her jeg følgende foreløpig:

PHP:
<?php
// $content = the_content();
function custom_page_template($content) {

	global $post;
	
	// $customPageTemplate = mycustomtemplate.php
	$customPageTemplate = get_post_meta($post->ID, 'customPageTemplate', true);
	
	// Hvis customPageTemplate er satt.
	if( !empty($customPageTemplate) ) {

		// Bruk heller template fra mycustomtemplate.php og IKKE return $content.
		return include(get_theme_root().'/'.get_stylesheet().'/'.$customPageTemplate);

	}
	
	// Hvis customPageTemplate IKKE er satt.
	else {
		// return $content som vanlig.
		return $content;
	}

}

add_filter( 'the_content', 'custom_page_template' );

?>

I mycustomtemplate.php ser jeg for meg at jeg har noe alla:

PHP:
<div id="title"><?php the_title(); ?></div>
<div id="content"><?php the_content(); ?></div>
 

adeneo

Medlem
Jeg er litt usikker på om du kan gjøre det på den måten?

Du kan vel normalt ikke overstyre The Loop på den måten tror jeg, men du kan bruke pre_get_posts til å endre kategorier og en del annet før The Loop, men da har du vel ikke tilgang til get_post_meta, og er like lang ettersom du ikke får sjekket feltet customPageTemplate og ikke vet om posten har den feltet eller ikke ?
 
Topp