← WordPress

Mostrar código PHP a meio do post

Lida 3016 vezes

Offline

Diogo Pinto 
Administrador
Mensagens 4400 Gostos 371
Feedback +4

Troféus totais: 37
Trófeus: (Ver todos)
Avatar Search Level 6 Linux User Mobile User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Olá a todos,

Venho hoje com uma dúvida para o pessoal do wordpress do fórum :)

Eu gostaria que a meio do post (a meio do número de parágrafos) fosse colocado um código PHP (um include).

Alguém tem uma sugestão? O whydowork adsense faz o trabalho muito bem, mas não dá para colocar código PHP :(

Sugestões, alguém? :)

Um abraço e obrigado
Offline

Bernardo Cordeiro 
Membro
Mensagens 242 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts First Post

Se escreveres em formato HTML não consegues colocar?

Se não podes sempre tentar inserir directamente na base de dados x)

Ou ainda, podes instalar este plugin
http://wordpress.org/extend/plugins/exec-php/
Offline

Fernando Augusto 
Membro
Mensagens 922 Gostos 0
Feedback +1

Troféus totais: 30
Trófeus: (Ver todos)
Linux User Mobile User Windows User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Diogo penso que isto dá para o que queres.

no functions.php adicionas

Código: (php) [Seleccione]
function pubnomeio(){
ob_start();
the_content();
$content = ob_get_clean();
return sizeof(explode(" ", $content));
}

agora no single:

Código: (php) [Seleccione]
<?php if (pubnomeio()> 300) {?>
 
include(TEMPLATEPATH . '/publicidade.php');
 
<?php };?>

A partir da palavra 300 ele faz aparecer o que está no include, se o artigo não tiver 300 palavras ele não aparece.
Offline

Diogo Pinto 
Administrador
Mensagens 4400 Gostos 371
Feedback +4

Troféus totais: 37
Trófeus: (Ver todos)
Avatar Search Level 6 Linux User Mobile User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Se escreveres em formato HTML não consegues colocar?

HTML não é solução, preciso de um código dinâmico. ;)

Diogo penso que isto dá para o que queres.

no functions.php adicionas

Código: (php) [Seleccione]
function pubnomeio(){
ob_start();
the_content();
$content = ob_get_clean();
return sizeof(explode(" ", $content));
}

agora no single:

Código: (php) [Seleccione]
<?php if (pubnomeio()> 300) {?>
 
include(TEMPLATEPATH . '/publicidade.php');
 
<?php };?>

A partir da palavra 300 ele faz aparecer o que está no include, se o artigo não tiver 300 palavras ele não aparece.

Obrigado Fernando por essa solução mas, infelizmente não é a indicada. Existem alguns artigos com palavras inferiores a 300. :(

Obrigado!
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

O que tu queres não é nada seguro, mas aqui vai, penso que este dá: http://wordpress.org/extend/plugins/allow-php-in-posts-and-pages/
Offline

João Godinho 
Membro
Mensagens 1755 Gostos 2
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Porque não crias ficheiro com o php e os metes nos post com uma iframe. Não sei até que ponto é uma boa solução, mas isso de habilitar o php nos posts não é muito seguro.
Offline

Bernardo Cordeiro 
Membro
Mensagens 242 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts First Post

HTML não é solução, preciso de um código dinâmico. ;)

Obrigado Fernando por essa solução mas, infelizmente não é a indicada. Existem alguns artigos com palavras inferiores a 300. :(

Obrigado!

Diogo, eu estava a sugerir que fosses à parte do post de html e tentasse colocar o código php, mas já entendi que não dá para fazer ;-)
Offline

Diogo Pinto 
Administrador
Mensagens 4400 Gostos 371
Feedback +4

Troféus totais: 37
Trófeus: (Ver todos)
Avatar Search Level 6 Linux User Mobile User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Atenção, eu não quero colocar PHP no meio dos posts, usando Exec PHP ou assim. O que eu procuro é que no próprio ficheiro single.php, a meio do post, sejam mostrados os resultados de um query.
Offline

Bernardo Cordeiro 
Membro
Mensagens 242 Gostos 0
Troféus totais: 17
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts First Post

Atenção, eu não quero colocar PHP no meio dos posts, usando Exec PHP ou assim. O que eu procuro é que no próprio ficheiro single.php, a meio do post, sejam mostrados os resultados de um query.

Podes arranjar uma função para contar quantas palavras o post tem, fazes para dividir o valor por 2, e metes lá o código que queres ++'
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Atenção, eu não quero colocar PHP no meio dos posts, usando Exec PHP ou assim. O que eu procuro é que no próprio ficheiro single.php, a meio do post, sejam mostrados os resultados de um query.

Ahh! A única solução que conheço é a que o Fernando apresentou, podes fazer é uma função que conta o numero de palavras e depois mete o código no meio, se é no meio que queres sempre.
Offline

Fernando Augusto 
Membro
Mensagens 922 Gostos 0
Feedback +1

Troféus totais: 30
Trófeus: (Ver todos)
Linux User Mobile User Windows User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Para dividir ao meio é que já não sei, mas deve para dar para editar o que meti em cima
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Eu tinha a função já feita para isso aqui algures.. se encontrar coloco aqui...
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

http://wordpress.org/support/topic/determine-automatically-the-middle-of-the-post-from-word-count

Tem lá um que conta os parágrafos, porque se contar as palavras depois ia ficar a cortar texto, mas isso já depende do que queres...
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Não era isto que usava mas também te serve.. basta trocares o "the_content()" no single.php por este código:

Código: (php) [Seleccione]
$content = apply_filters('the_content', $post->post_content);
$save = explode("</p>", $content);
$count = 1; $middle = intval(count($save)/2);
foreach ($save as $a){
  if ($count == $middle){
    CODIGO PHP AQUI
  }
echo $a."</p>";
$count = $count +1;
}
Offline

Pedro Lopes 
Beta tester
Mensagens 3568 Gostos 18
Feedback +6

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Não era isto que usava mas também te serve.. basta trocares o "the_content()" no single.php por este código:

Código: (php) [Seleccione]
$content = apply_filters('the_content', $post->post_content);
$save = explode("</p>", $content);
$count = 1; $middle = intval(count($save)/2);
foreach ($save as $a){
  if ($count == $middle){
    CODIGO PHP AQUI
  }
echo $a."</p>";
$count = $count +1;
}

Exactamente, isso está a contar os parágrafos.