Hallo allemaal,
In mijn error logs op mijn server krijg ik dit:Cannot modify header information - headers already sent by (output started at .... /public_html/index.php:1) in .... public_html/blog/wp-includes/pluggable.php on line 1216\n

The index.php is van mijn statische website en op de eerste regel vind je dit: <!doctype html>
The pluggable.php is van mijn WP blog, die in een map op die statsische website staat.
Op regel 1216 staat dit: header("Location: $location", true, $status);

Ik krijg een aantal dezelfde errors, ook van mijn andere php pagina's van mijn statische website.

Ik heb al online zitten zoeken en waarschijnlijk moet ik iets aan dat doctype veranderen, maar wat?
Er staat geen whitespace voor of achter dat doctype.

Johanna
Joke Ouwerling op 01/07/2018 11:04:49
Zou het met die include blogposts.php te maken hebben?

Moet haast wel. Voor de rest zit er geen PHP in, en het klinkt wel heel erg alsof je daarin toch een bruggetje naar PHP hebt zitten. Ik zou dus maar eens in blogposts.php gaan snuffelen.

Als je het heel "quick & dirty" op wilt lossen kun je ook dit doen:

<?php //dit is regel 1 van /index.php
ob_start();
include("blogposts.php");
$blogposts = ob_get_clean(); 
//de output van blogposts.php staat nu in de variabele $blogposts
//en (nog) niet op het scherm
?>
<!doctype html>
//rest van HTML

//waar nu de include "blogposts.php" staat doe je dan:
<?php print($blogposts); ?>

De evt. headers die worden gezet bij het genereren van de blogposts worden nu direct geplaatst (bovenaan, voor de content = OK), maar het daadwerkelijk tonen van de blogposts doe je pas later (op dezelfde plek als nu = OK).
Rob Doemaarwat op 01/07/2018 11:22:57

[quote="Joke Ouwerling op 01/07/2018 11:04:49"]Zou het met die include blogposts.php te maken hebben?

Moet haast wel. Voor de rest zit er geen PHP in, en het klinkt wel heel erg alsof je daarin toch een bruggetje naar PHP hebt zitten. Ik zou dus maar eens in blogposts.php gaan snuffelen.

Als je het heel "quick & dirty" op wilt lossen kun je ook dit doen:

<?php //dit is regel 1 van /index.php
ob_start();
include("blogposts.php");
$blogposts = ob_get_clean(); 
//de output van blogposts.php staat nu in $blogpost
//en (nog) niet op het scherm
?>
<!doctype html>
//rest van HTML

//waar nu de include "blogposts.php" staat doe je dan:
<?php print($blogposts); ?>

De evt. headers die worden gezet bij het genereren van de blogposts worden nu direct geplaatst (bovenaan, voor de content = OK), maar het daadwerkelijk tonen van de blogposts doe je pas later (op dezelfde plek als nu = OK).

[/quote]

Bedankt. :D Die code ga ik uitproberen en dan kijken of die errors weggaan.

De code van de blogposts.php is dit:

<?php 
	require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php'); 
	$args = array(
		// 'cat' => 2, // Only source posts from a specific category
		'posts_per_page' => 2 // Specify how many posts you'd like to display
	);
	$latest_posts = new WP_Query( $args ); 	
	if ( $latest_posts->have_posts() ) {
		while ( $latest_posts->have_posts() ) {
			$latest_posts->the_post(); ?>
    	<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> 
	<?php if ( has_post_thumbnail() ) { ?>
	<?php } ?>		
			<span class="post_title"><?php the_title(); ?></span>
		</a>
		<span class="post_time">Posted on <?php the_time('l jS F, Y') ?></span>
		<?php the_excerpt(); ?>	
<? } 
		} else {
		echo '<p>There are no posts available</p>';
	}
	wp_reset_postdata();
?>


Hoe zet ik hier code neer? Nu breekt hij alles op in stukjes.
Code-tags, zie de Veelgestelde Vragen op de site.
- Ariën - op 01/07/2018 11:57:40

Code-tags, zie de Veelgestelde Vragen op de site.


Gevonden. Bedankt!
De header() functie staat in pluggable.php.

Gezien het een add-on van een andere partij is, vraag ik mij af of het niet zinvoller is om bij hun een bug-melding te rapporteren.

Straks dan zit je zelf de boel te repareren terwijl een nieuwe update er voor zorgt dat die plug-in weer zijn fout misschien wel weer terug heeft. Het kan zelfs zijn dat dit ergens mee kan conflicteren waardoor niet iedereen deze bug heeft.
- Ariën - op 01/07/2018 12:03:14

De header() functie staat in pluggable.php.

Gezien het een add-on van een andere partij is, vraag ik mij af of het niet zinvoller is om bij hun een bug-melding te rapporteren.

Straks dan zit je zelf de boel te repareren terwijl een nieuwe update er voor zorgt dat die plug-in weer zijn fout misschien wel weer terug heeft. Het kan zelfs zijn dat dit ergens mee kan conflicteren waardoor niet iedereen deze bug heeft.


Ja dat kan ik doen, maar het is geen plugin, maar een standaard bestand van wp, die pluggable.php. En ik zie op het wp forum best wel veel meldingen met deze "headears already sent."

En is die "quick and dirty" oplossing slecht?
Zelf zou ik dit anders oplossen, maar binnen de manier waarop WP nou eenmaal werkt is dit denk ik niet eens zo'n hele "dirty" oplossing.
Rob Doemaarwat op 01/07/2018 12:15:53

Zelf zou ik dit anders oplossen, maar binnen de manier waarop WP nou eenmaal werkt is dit denk ik niet eens zo'n hele "dirty" oplossing.


Dat is goed om te weten. Ik hoop in ieder geval, dat hierdoor de error meldingen weggaan.
Bedankt iedereen voor alle hulp!

Totdat Wordpress een update krijgt......
En als je:
require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php');

uit blogposts.php naar het begin van index.php verplaatst?

Waarschijnlijk heb je dan niet eens die output buffering nodig.

@Ariën, voor zover ik dit/WordPress begrijp is /blog/wp-load.php voor dit soort zaken bedoeld. Omdat het een standalone script betreft zal dit verder weinig invloed hebben als WP een update krijgt, tenzij wellicht (core?) functies zoals WP_Query, ->have_posts() etc. veranderen (wat nogal onwaarschijnlijk is), en zelfs dan, de scope waarop zo'n update een impact heeft is (vooralsnog) één script, dus dat is nog wel te overzien.

Zaak is wel dat wanneer je op meerdere plekken dit soort scripts om WP heen begint te breien je je misschien moet gaan afvragen waarom je dat pakket dan gebruikt :p.

Maar een enkele custom page met uitsluitend de dingen die je nodig hebt zonder alle andere (maar alleen de noodzakelijke) poeha van WP moet kunnen?

Reageren