Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Buenas!
O WordPress, me corrijam se estiver errado, é todo feito através da chamada de funções(). Aí que surge as dúvidas, onde que essas funções estão definidas? Para funcionar, não deveria haver um include() em cada página que as funções são usadas? Isso seria Orientação a Objeto?
Obrigado desde já!
Realmente o código é uma bagunça.
Vamos supor que tenho uma página que a primeira linha é <?php get_header(); ?>. Como o php vai reconhecer isso, sendo que não tem nenhum require antes do código pra "explicar" essa função?
Obrigado de novo!
Suponha agora que você tenha os seguintes arquivos:
index.php
theme.php
header.php
footer.php
index.php contém as funções get_header() e get_footer e chama theme.php chama essas funções.
index.php
function get_header() {
include "header.php";
}
function get_footer() {
include "footer.php";
}
require "theme.php";
theme.php
<?php
/* as funções get_header() e get_footer() estarão disponíveis aqui
pois elas foram declaradas no index.php
*/
?>
<?php get_header(); ?>
<div></div>
<?php get_footer(); ?>
header.php
<header></header>
footer.php
<footer></footer>
Talvez você esteja acostomuado a ter em seu diretório raiz os arquivos, por exemplo, home.php, contato.php e sobre.php, e no .htaccess você implementa a URL amigável assim:
RewriteRule ^home$ home.php
RewriteRule ^sobre$ sobre.php
RewriteRule ^contato$ contato.php
O WP faz diferente, todas as requisições vão para index.php e depois são chamados outros arquivos, incluindo o tema, que são os últimos arquivos chamados.
Entendeu?
Agora sim entendi rsrs. Mas pra compreender completamente o código leva tempo. Pra começar fazer uns temas do zero para Wordpress é preciso conhecer toda a semântica do wp?
OBS.: Será a prova do ITA mais foda do que entender o WP todinho?? :natallaugh:
Abrss
Não, Orientação a Objeto (OO) envolve classes, não funções soltas. Um código como o do Wordpress, que usa apenas funções e variáveis globais, ainda é considerado código procedural. Embora o WP tenha algumas classes, apenas isso não basta para se dizer que ele foi escrito com orientação a objetos, isso só pode ser dito se o programa fosse feito unicamente com classes, com código procedural apenas na inicialização.
As funções do WordPress são agrupadas e divididas entre arquivos, que são chamados usando require durante a execução.
Quando uma requisição é enviada a um site rodando WordPress, primeiramente o arquivo index.php é chamado, esse arquivo depois chama o arquivo wp-blog-reader.php, que chama wp-load.php e includes/template-loader.php. O wp-load.php chama o arquivo includes/load.php, que tem várias funções que contém requires para determinados arquivos que implementam determinadas funções do WordPress (como internacionalização, etc), sendo essas funções são chamadas quando esses arquivos forem necessários, além de chamar wp-config.php, que chama settings.php, que chama um objeto wp(), que depois é chamado pelo wp-blog-header.php... enfim, uma bagunça... não é a toa que o código do WP seja tão criticado, embora seja um programa matador.