← WordPress

sobre o autor - desenvolvimento de codigo

Lida 5462 vezes

Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

tenho este código para colocar nos postes, de um site que estou a desenvolver, informações sobre o autor

Código: [Seleccione]
<div class="author-box">
<?php echo get_avatarget_the_author_id() , 80 ); ?>
<div class="author-name">Escrito por <?php the_author_posts_link(); ?></div><!--author-name-->
<div class="author-description"><?php the_author_description(); ?></div><!--author-description-->
</div><!--author-box-->

bem isso ai funciona, mas eu queria mais.. e não estou a conseguir..

o que pretendo:

- se um autor não tem nada na descrição, então a informação sobre o autor não aparece, e também será que da para por a só aparecer com um numero mínimo de caracteres?
Offline

bonsempregos 
Membro
Mensagens 2008 Gostos 7
Feedback +3

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

usa o if (!the_author_description == '') :{

na pratica tas a dizer se a descrição do autor é diferente de '' (que é vazio, ou seja dois sinais de ' seguidos) para executar determinado codigo.

nao te esqueça de acabar o if com um endif
Offline

bonsempregos 
Membro
Mensagens 2008 Gostos 7
Feedback +3

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

para dar um pouco mais a perceber a quem nao "pesca" muito de lógica:

o que essa linha de código faz é

if (se determinada condição)
! (oposto de)
the_author_description (função do wp que vai buscar a descrição do autor)
== (for igual)
'' (nada)
então executa o codigo

Num if as perguntas sao sempre respondidas com true or false (verdadeiro ou falso).

Neste caso se o autor tiver uma descrição mostrar esse código.
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

Código: [Seleccione]
<?php

if (the_author_description() =! "") {

?>

<div class="author-box">
<?php echo get_avatarget_the_author_id() , 80 ); ?>
<div class="author-name">Escrito por <?php the_author_posts_link(); ?></div><!--author-name-->
<div class="author-description"><?php the_author_description(); ?></div><!--author-description-->
</div><!--author-box-->
<?php } else { ?>
Põe aqui o que quiseres.
<?php ?>

Aqui está ;) Não testei mas julgo que funciona...
Offline

bonsempregos 
Membro
Mensagens 2008 Gostos 7
Feedback +3

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

nunca na vida isso vai funcionar, o ! é sempre antes do author description, alem disso ele nao quer que apareça nada caso nao tenha descrição por isso nao faz nenhum sentido ter um else, mas sim um endif.
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

O código que fiz em cima, está com uns erros, vi agora, vou ao treino e quando voltar corrijo... sorry guys.

@bonsempregos, hum?!
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

Vê se é isto que queres...

Código: [Seleccione]
<?php 
if (the_author_description() != '') {
$maximo 50// Maximo de letras.
$texto the_author_description();
$description substr($texto0$maximo);
?>

<div class="author-box">
<?php echo get_avatarget_the_author_id() , 80 ); ?>
<div class="author-name">Escrito por <?php the_author_posts_link(); ?></div><!--author-name-->
<div class="author-description"><?php echo $description?></div><!--author-description-->
</div><!--author-box-->
<?php ?>
Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

obrigado ai pela ajuda a todos :grin:

bonsempregos eu percebo +/- o código, ando a dar C e a cena é mais ou menos a mesma em quase todas as linguagens, não estava a ver é como definia a lista vazia em php

 :obrigado: :obrigado:
Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

bem já testei e não esta a funcionar, ou melhor funcionar funciona, o problema é que as div não funcionam

como posso chamar as divs no código?


Código: [Seleccione]
.author-box { background:#fff8af; padding:10px; margin-bottom:50px; margin-left:10px; width: 580px;}
.author-box img.avatar {background:#fff8af; float:left; margin:1px 10px 0 0; }
.author-box .author-name {padding-bottom:0px; font-weight:bold; font-size:16px;  margin-bottom:5px;}
.author-box .author-description {font-family:verdana, arial, helvetica; font-size:11px; line-height:16px; color:#666666;}

ta ai o css se alguém quiser testar
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

Queres que apareça o quê quando a descrição tá vazia?
Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Queres que apareça o quê quando a descrição tá vazia?

que não apareça nada, mas isso o codigo funciona tanto o teu como o do DiguiVirus que eu corrigi, o problema é que as div não funcionam, ou seja aparece o texto se a descrição tiver texto, caso não tenha não aparece nada, o problema é que aparece só o texto o css não esta a funcionar (não aparece o texto configurado, não aparece o background, não aparece o avatar)

percebes-te?
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

que não apareça nada, mas isso o codigo funciona tanto o teu como o do DiguiVirus que eu corrigi, o problema é que as div não funcionam, ou seja aparece o texto se a descrição tiver texto, caso não tenha não aparece nada, o problema é que aparece só o texto o css não esta a funcionar (não aparece o texto configurado, não aparece o background, não aparece o avatar)

percebes-te?

Ah! Estranho, tens as class's certas. :/

Adicionaste o css ao style.css do theme certo? lol
Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Ah! Estranho, tens as class's certas. :/

Adicionaste o css ao style.css do theme certo? lol

eu penso que sim, mas o browser diz o contrario porque não da o que devia  :lol: :lol:

eu tenho defenido as class como tenho acima, tens como testar para ver se funciona?
Offline

betanalista 
Membro
Mensagens 2564 Gostos 0
Feedback +18

Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

bem eu estive aqui a raciocinar um bocado e acho que sei porque razão as div não funcionam, o problema é que elas estão dentro do código php


Citar
<?php
if (the_author_description() != '') {
$maximo = 50; // Maximo de letras.
$texto = the_author_description();
$description = substr($texto, 0, $maximo);
?>
<div class="author-box">
<?php echo get_avatar( get_the_author_id() , 80 ); ?>
<div class="author-name">Escrito por <?php the_author_posts_link(); ?></div><!--author-name-->
<div class="author-description"><?php echo $description; ?></div><!--author-description-->
</div><!--author-box-->
<?php } ?>



então estive aqui a pensar numa forma de resolver isto, e preciso da vossa ajuda.

a minha ideia era(se isto for possível):
- atribuir um "função/nome" que representa-se parte do código, algo do género:

Código: [Seleccione]
função/nome {
<div class="author-box">
<?php echo get_avatarget_the_author_id() , 80 ); ?>
<div class="author-name">Escrito por <?php the_author_posts_link(); ?></div><!--author-name-->
<div class="author-description"><?php echo $description?></div><!--author-description-->
</div><!--author-box-->
}


e depois fazer um printf/show do código na outra função, algo assim:
Código: [Seleccione]
<?php 
if (the_author_description() != '') {
$maximo 50// Maximo de letras.
$texto the_author_description();
$description substr($texto0$maximo);
?>

printf (nome/função);
<?php ?>




bem não sei se isso é possível, e não sei se a correr o programa vai correr duas vezes a função "função/nome".. mas é uma ideia


os termos código esta errado, é só uma ideia, se alguém a consegui-se transformar em código agradecia  :)
Offline

bonsempregos 
Membro
Mensagens 2008 Gostos 7
Feedback +3

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

nao te ta a funcionar o css pq tas a incluir o css dentro do php, o que não dá, tens de fechar o php, meter o css e html e depois abrir.

continuo a dizer que o != é completamente errado.