Como você descobre qual página de modelo está servindo a página atual?
-
-
Euinspeciono o HTMLe encontro umatagidentificada ou algo único.I inspect the html and find an identified tag or something unique.
- 1
- 2011-12-27
- Naoise Golden
-
Veja o código-fontee procure as classes do corpo que lheinformam qualmodelo é usado.Tambémte dá oi.d.View the source code and look for the body classes which tell you which template is used. Also gives you the i.d.
- 1
- 2014-02-04
- Brad Dalton
-
Possível duplicado de [Obternome do arquivo demodelo atual] (https://wordpress.stackexchange.com/questions/10537/get-name-of-the-current-template-file)Possible duplicate of [Get name of the current template file](https://wordpress.stackexchange.com/questions/10537/get-name-of-the-current-template-file)
- 0
- 2017-06-13
- Burgi
-
@Braddalton +1.Especialmente quandonãotemospermissãoparainstalar umplugin ouescrever umafunçãopara atingir o objetivo.@BradDalton +1. Specially when we are not allowed to install a plugin or write a function to achieve the goal.
- 0
- 2018-07-13
- Subrata Sarkar
-
9 respostas
- votos
-
- 2011-12-26
ganchoem
Template_Include
,defina umglobalpara anotar omodelo definidopelotema,leiaesse valor de voltapara o rodapé ou cabeçalhopara ver qualmodeloestá sendo chamadopara uma determinadaexibição.Eufalei sobreestegancho defiltro antesem Obternome da corrente Arquivo demodelo ,mas vápegar um cópia desse código e plonk,seutema's
funções arquivo .php
.Em seguida,abra o cabeçalho
.ou rodapé.php
(ou onde quiser)e use algo como o seguinteparaimprimir omodelo atual.& Lt; Div & GT; Strong & GT; Modelo atual: & lt;/forte > & lt;?phpget_current_template (verdadeiro);? >/div >
Se você quisesse usarissoem um site deproduçãoe manteressainformação longe de seus usuáriosnão administradores,adicione umpouco de lógica condicional.
& lt;?php //Se o usuário atualpudergerenciar opções (ou seja,um administrador) if (current_user_can ('manage_options')) //Imprima o Global Salvo printf ('& lt; div > strong >modelo atual: & lt;/forte >% s & lt;/div >',get_current_template ()); ? >
Agora vocêpode acompanhar quais visualizaçõesestão usando omodelo,enquantomantémessasinformações de seus visitantes.
Hook onto
template_include
, set a global to note the template set by the theme then read that value back into the footer or header to see which template is being called for a given view.I spoke about this filter hook before in Get name of the current template file, but go grab a copy of that code and plonk it your theme's
functions.php
file.Then open up the theme's
header.php
orfooter.php
(or wherever you like) and use something like the following to print out the current template.<div><strong>Current template:</strong> <?php get_current_template( true ); ?></div>
If you wanted to use this on a production site and keep that info away from your non-administrator users, add a little conditional logic.
<?php // If the current user can manage options(ie. an admin) if( current_user_can( 'manage_options' ) ) // Print the saved global printf( '<div><strong>Current template:</strong> %s</div>', get_current_template() ); ?>
Now you can keep track of what views are using what template, whilst keeping that info away from your visitors.
-
Se houver algoerrado comessa resposta,ou se alguémpudessefornecer comentários sobre o quepoderia serfeitoparamelhoraresta resposta,tenha,deixe-o,solte um comentário aquie compartilhe seuspensamentose idéias sobre comomelhorá-lo.If there is something wrong with this answer, or if anyone could provide comments on what could be done to improve this answer, have at it, drop a comment here and share your thoughts and ideas on how to make it better.
- 1
- 2014-01-28
- t31os
-
Nãofuncionou Bro,diz "funçãoindefinida"It didn't work bro, it says "Undefined function"
- 1
- 2016-04-27
- Lucas Bustamante
-
@Lucasbmesmo aqui,esse é oerro que recebi@LucasB same here, that's the error I got
- 1
- 2017-01-07
- Lincoln Bergeson
-
Isso deve ser ["get_page_template"] (https://codex.wordpress.org/function_reference/get_page_template)This should be [`get_page_template`](https://codex.wordpress.org/Function_Reference/get_page_template)
- 2
- 2017-08-11
- Blazemonger
-
`get_current_template 'não é umafunçãoe`get_page_template`imprimenadaparamim (umapágina wooCommerce).`get_current_template` is not a function and `get_page_template` prints nothing for me (a woocommerce page).
- 0
- 2020-06-27
- run_the_race
-
- 2011-12-26
Bem,setudo que você quiser é verificar qual arquivo demodelofoi usadoparagerar apágina atual,vocênãoprecisa deixar asmãos sujas com código;)
háesteplugin acessível chamado barra de depuração . É um ótimo ajudanteem muitas situações,incluindo a sua. Você deve definitivamente verificar -paramim emuitos outros,é um companheiro obrigatóriopara qualquer desenvolvimento WP.
eu anexei uma captura detela quepoderiafazer você se apaixonar ...
Para obter abarra de depuração working ,vocêprecisa ativar
wp_debug
ewp_savequeries
opções. Essas opçõesestãoem estado desativadoporpadrão.Antes defazer alguma alteração,existem algunspontosparaterem mente:
- Nãofaçaissono ambiente deprodução,amenos que o sitenão atenda amuitotráfego.
- Depois de concluir a depuração,certifique-se de Desativar as opções (especialmente a opção WP_Savequeries,pois afeta o desempenho) do site.
Parafazer as alterações:
- .
- aberto
wp_config.php
arquivo através de um cliente FTP. - Pesquisapor
wp_debug
opção. Edite-oparaDefinir ('WP_DEBUG',TRUE);
. Se a linhanãoestiverpresente,adicione-a ao arquivo. - Damesmaforma,editar ou adicionar a linha
Definir ('Savequeries',true);
para o arquivo. - salvar. Vocêestáprontopara depurar.
Maisinfo: Codex
Well, if all you want is to check which template file has been used to generate the current page then you don't need to get your hands dirty with code ;)
There's this handy plugin called Debug Bar. It's a great helper in many situations including yours. You should definitely check it out - for me and many others it's a must-have companion for any WP development.
I've attached a screenshot that could make you fall in love...
To get the Debug Bar working, you need to enable
wp_debug
andwp_savequeries
options. These options are in disabled state by default.Before you make any changes though, there are a few points to keep in mind:
- Do not do it in production environment unless the website doesn't cater to a lot of traffic.
- Once you finish debugging, ensure to disable the options (especially the wp_savequeries option since it affects the performance) of the website.
To make the changes:
- Open
wp_config.php
file through a ftp client. - Search for
wp_debug
option. Edit it todefine( 'WP_DEBUG', true );
. If the line is not present, add it to the file. - Similarly, edit or add the line
define( 'SAVEQUERIES', true );
to the file. - Save. You are ready to debug.
More info: Codex
-
@justcallmebiru - Oplugin dabarra de depuraçãonão requer * `wp_debug`e` savequeries`,embora sejamelhorado *poreles.@justCallMeBiru -- the Debug Bar plugin doesn't *require* `WP_DEBUG` and `SAVEQUERIES`, though it is *enhanced* by them.
- 2
- 2014-01-15
- Pat J
-
Executandotalplugin,apenaspara umpouco deinformação cria ummonte de sobrecarga,e assim éporisso queeunão sugeriissoem minhaprópria resposta.Ditoisto,claramente aspessoaspreferemesta resposta,estou curiosapara saberpor quê.Running such a plugin, just for one tid bit of information creates alot of overhead imho, and thus it is why i did not suggest it in my own answer. That said, clearly people prefer this answer, i'm curious to know why though.
- 3
- 2014-01-28
- t31os
-
- 2014-01-23
Eu usoestafunção útil queexibe omodelo atual apenaspara super administradores:
function show_template() { if( is_super_admin() ){ global $template; print_r($template); } } add_action('wp_footer', 'show_template');
Espero que ajude.:)
I use this handy function that displays the current template only for super admins:
function show_template() { if( is_super_admin() ){ global $template; print_r($template); } } add_action('wp_footer', 'show_template');
Hope that helps. :)
-
Esta é a respostagoto,deve ser aceita.This is the goto answer, should be accepted.
- 3
- 2018-03-13
- Hybrid Web Dev
-
Eu usoissotambém,mas aindanãotem aexibição dos quais "incluem"está sendo usadoe mostra apenas apágina denível superior.I use this also but it still lacks the display of which “include” is being used and only shows the top level page.
- 0
- 2020-07-08
- Burndog
-
- 2011-12-27
Adicione o seguinte código logo após a linha Get_Headerem cada arquivo demodelo relevante:
<!-- <?php echo basename( __FILE__ ); ?> -->
No seunavegador> Verfonte,e onome domodelo seráexibido como um comentárioem seu código HTML,e.
<!-- page.php -->
Add the following code right after the get_header line in each relevant template file:
<!-- <?php echo basename( __FILE__ ); ?> -->
In your browser > view source, and the template name will be displayed as a comment in your html code, e.g.
<!-- page.php -->
-
Émuitoesforçopara adicionarissoem todos os lugaresit's too much effort to add this everywhere
- 0
- 2019-02-18
- Adal
-
Hahaha,por que sepreocupar comisso se vocêfor rotular cada arquivo,basta rotulá-lo com onome do arquivo real!hahaha, why bother with this if you're going to label each file then simply label it with its actual file name!
- 0
- 2020-05-09
- Aurovrata
-
@Aurovratafoi hámuitotempo atrás.Existemmelhores soluções.Maseutinha um simples scriptparainserir o códigonaparte superior detodos os arquivosem umapasta,portanto,não hánada de codificação denomes reaisnecessários.Feitoem 1 ou 2 segundos.@Aurovrata it was a long time ago. There are way better solutions. But I had a simple script to insert the code at the top of all files in a folder, so no hardcoding of actual names required. Done in 1 or 2 seconds.
- 0
- 2020-05-20
- ronald
-
éjusto,:)fair enough, :)
- 0
- 2020-05-21
- Aurovrata
-
- 2017-09-15
aqui você vai:
Uma lista de html com Todos os arquivos demodelo em usopara apágina de destino atual,incluindotodas aspeças demodelo deplugins,temainfantile/ou combinações detemapai ,Tudoem uma linha de código:
echo '& lt; ul > li >'.implodir ('& lt;/li > li >',str_replace (str_replace ('\\','/',ABSPATH) 'WP -Content/'',',array_slice (str_replace (' \\ ','/',get_included_files ()),(array_search (str_replace (' \\ ','/',ABSPATH). loader.php ',str_replace (' \\ ','/',get_included_files ())) + 1))))).' & lt;/lt; > ';
Vocêpodeprecisar verificar que o seu servidor não retorne asbarras de Dubleem qualquer caminho . Lembre-se de colocarisso depois detodos os arquivos demodelo realmente serem usados,comono rodapé.php,mas antes dabarra de administrador renderiza .
Se
material de admin-bar
o caminhoestámostrandonaparte superior ou qualquer outro arquivo,altere onome do arquivomodelo-loader.php
nesta linha de códigopara: Filname que vocêprecisa romper. Muitas vezes:Class-WP-Admin-Bar.php
Se vocêprecisar dissonabarra de administração, use aprioticidade correta strong> (mais cedo) parafazer shure Nenhum arquivo éinseridonofinal desta lista. Porexemplo:
add_action ('admin_bar_menu','my_adminbar_template_monitor',-5);
Prioridade
-5
Faça o shure carregaprimeiro. A chave é chamarget_included_files ()
nomomento certo,caso contrário,alguns aparelhos-poppingnecessários!para quebrarisso:
você nãopode coletartodos os arquivos demodeloincluídos sembacktracephp. Superglobals Inside
Template_Include
Não colecionetodos . A outramaneira é "colocar ummarcador"em cada arquivo demodelo,mas se vocêprecisarinteragir com os arquivosprimeiro,você vai com otempoe toda aideia.1) Precisamos verificar dentro detodos os arquivos queforam usados pela solicitação do WordPress atual. Eeles sãomuitos! Nãofique surpreso se vocêestiver usando 300 arquivos antesmesmo de suasfunções.phpestá registrado.
$inclued_files=str_replace ('\\','/',get_included_files ());
Estamos usando ophpnativeget_included_files (),convertendo lixeirasparaencaminharbarraspara corresponder amaioria dos caminhos retornando do WordPress.
2) Estamos cortandoessamatriz de onde omodelo-loader.phpestá registrado. Depois disso,opreenchidoget_included_files () só deveter arquivos demodelopreenchidos.
/* opontomágico,precisamosencontrar suaposiçãonamatriz */ $path=str_replace ('\\','/',ABSPATH); $ key=$path.'wp-inclui/template-loader.php '; $ Offset=Array_Search ($ Key,$inclued_files); /* Livre-se dopontomágicoem sinonovo array criado */ $ deslocamento=($ deslocamento + 1); $ Output=Array_slice ($incluído_files,$ deslocamento);
3) encurtam os resultados,nósnãoprecisamos do caminho atépasta dotema oupasta deplug-in, comomodelos em uso,pode sermisturado deplugins,tema oupastas detemainfantil.
$ substituição=$path.'wp-teor/'; $ Output=str_replace ($ substituição,'',saída $);
4) Finalmente,converter damatrizpara uma lista HTML agradável
$ Output='& lt; ul >e lt; li >'implodir ('& lt;/li >e lt; li >',$ saída). '& lt;/lt;/lt;/lt;/lt > ;
uma últimamodificaçãopode sernecessária em Part3) -replacement ,se você não desejar necessárioinclui porplugins. Elespodem chamar
arquivos de classe
tardioe "interceptar" durante oprocessamento de saída demodelo.Noentanto,achei razoável deixá-los visíveis,como Aideia é rastrear o quefoi carregado ,mesmo quenão seja um "modelo" que aprodução de renderizaçãonestafase.
Here you go:
A HTML-list with all template files in use for the current landing page, including all template-parts from plugins, child theme and/ or parent theme combinations, all in one line of code:
echo '<ul><li>'.implode('</li><li>', str_replace(str_replace('\\', '/', ABSPATH).'wp-content/', '', array_slice(str_replace('\\', '/', get_included_files()), (array_search(str_replace('\\', '/', ABSPATH).'wp-includes/template-loader.php', str_replace('\\', '/', get_included_files())) + 1)))).'</li></ul>';
You MAY need to check that your server does not returning dubble slashes at any path. Remember to place this after all template files actually been used, like in footer.php, but before admin bar renders.
if
admin-bar stuff
path is showing at the top, or any other file, change the filenametemplate-loader.php
in this line of code to: whatever filname you need to break from. Often:class-wp-admin-bar.php
if you need this in the admin bar, use the right priotity (earliest) to make shure no files are entered at the end of this list. For example:
add_action('admin_bar_menu', 'my_adminbar_template_monitor', -5);
priority
-5
make shure it loads first. The key is to callget_included_files()
at the right moment, otherwise some array-popping needed!To break this up:
You can not collect all included template files without PHP backtrace. Superglobals inside
template_include
wont collect them all. The other way is to "place a marker" in each template file, but if you need to interact with the files first, you hazzle with time and the whole idea.1) We need to check inside all the files that have been used by current Wordpress request. And they are many! Dont be surprised if you are using 300 files before even your functions.php is registered.
$included_files = str_replace('\\', '/', get_included_files());
We are using the PHP native get_included_files(), converting backslashes to forward slashes to match most of Wordpress returning paths.
2) We are cutting that array from where the template-loader.php is registered. After that, the populated get_included_files() should only have template files populated.
/* The magic point, we need to find its position in the array */ $path = str_replace('\\', '/', ABSPATH); $key = $path.'wp-includes/template-loader.php'; $offset = array_search($key, $included_files); /* Get rid of the magic point itself in the new created array */ $offset = ($offset + 1); $output = array_slice($included_files, $offset);
3) Shorten down the results, we dont need the path until theme folder or plugin folder, as templates in use, can be mixed from plugins, theme or child theme folders.
$replacement = $path.'wp-content/'; $output = str_replace($replacement, '', $output);
4) Finally, convert from array to a nice HTML list
$output = '<ul><li>'.implode('</li><li>', $output).'</li></ul>';
A last modification might be needed in part3) -replacement, if you dont want required includes by plugins. They might call
class-files
late, and "intercept" during the template output processing.However, I found it reasonable to leave them visible, as the idea is to track whats been loaded, even if it is not a "template" that rendering output in this stage.
-
- 2011-12-25
Amaneiramaisfácil queencontrei éincluir afunção WordPressnatag do corpo.Vai adicionar várias classes dependendo de qualpágina vocêestá vendo (casapara afrente,páginaparapágina,etc).
Verifique aqui: Rel="nofollow"> http://codex.wordpress.org/function_reference/body_class
mais é útilpara segmentarelementos com CSSnessaspáginas.
Conhecendo a hierarquia domodelo (http://codex.wordpress.org/template_hierarchy) Como David Rtambém é umaboaideia.
Easiest way I've found is to include the WordPress function on the body tag. It'll add several classes depending on which page you're viewing (home for the front, page for page, etc).
Check it out here: http://codex.wordpress.org/Function_Reference/body_class
Plus it's helpful for targeting elements with CSS on those pages.
Getting to know the Template Hierarchy (http://codex.wordpress.org/Template_Hierarchy) as David R mentioned is also a good idea.
-
- 2013-01-29
Hámais umpluginmaisbare-ossoespecificamenteparaessafinalidade.Euestouinclinadoparainstalar abarra de depuração,porqueessas outras características são úteis,masesta émaisbásicae especificamenteparaestepropósito: http://wordpress.org/extend/plugins/what-the-file/
There's another more bare-bones plugin specifically for this purpose. I'm leaning towards installing the debug bar, because those other features look useful, but this one is more basic and specifically for this purpose: http://wordpress.org/extend/plugins/what-the-file/
-
- 2011-12-24
Uma coisamuito simples queeufaço éinserir um comentário HTMLidentificando o arquivo demodeloem cada arquivo relevante dotema,porexemplo,notopo doindex.phpeutenho
<!-- index -->
e notopo dofront-page.php
<!-- front -->
Mas obviamenteisso requermodificar otema.Eu suspeito que vocêpode adicionar umafunçãopersonalizadano arquivo de rodapé.php ou header.php que lhe diria qual arquivoestava sendo usado.Ométodo acimae ográfico de referência http://codex.wordpress.org/template_hierarchy são o queeu costumoUse.
One very simple thing I do is to insert an HTML comment identifying the template file in each relevant file of the theme, eg at the top of index.php I have
<!-- index -->
and at the top of front-page.php
<!-- front -->
But obviously that requires modifying the theme. I suspect you could add a custom function in the footer.php file or header.php which would tell you what file was being used. The above method and the reference chart http://codex.wordpress.org/Template_Hierarchy are what I tend to use.
-
- 2011-12-26
Há umplugin chamado Verificação detema O quefazexatamenteisso.Eleexibe onome do arquivo demodelo atualem uso como um comentário HTML.
There is a plugin named Theme Check which does exactly this. It displays the name of the current template file in use as a HTML comment.
Quando você ativar umtema WordPress,é sempre umincômodopara descobrir qual arquivoirparamudar as coisas. Algumaideia de como simplificar as coisas?
Mas,por outro lado,considerando afuncionalidade Get_Template_Part,issopode serimpossível.O que você diz?