Pregunta

necesito para obtener la URL de mi directorio de temas para hacer referencia a una imagen en el directorio de imagen / cabeceras del tema. ¿Cómo se hace esto en PHP?

¿Fue útil?

Solución

Esta función retorno la URL directorio de temas para que pueda utilizarlo en otras funciones:

get_bloginfo('template_directory');

Por otra parte, esta función echo la URL directorio de temas para el navegador:

bloginfo('template_directory');

Así que un ejemplo de una imagen en los temas images/headers carpeta sería:

<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />

Otros consejos

Lo que @EAMann dijo, con una advertencia. Eric tiene razón sobre el enfoque general y cómo funciona el bloginfo() y get_bloginfo() trabajo y acerca de cómo pasar el 'template_directory' parámetro para obtener el valor que necesita para (la mayoría) temas.

Sin embargo hay un problema y que salvedad es la más reciente Temas Niño . Si está utilizando un tema niño entonces 'template_directory' probablemente no es lo que quiere a menos que en realidad se está tratando de hacer referencia a una imagen que se encuentra en el directorio de temas de los padres. En cambio para los temas niño lo que es probable que desee es pasar stylesheet_directory (lo sé, lo sé, los nombres no le dicen lo que son, pero bueno, eso es sólo la forma en que lo es!) Tomando prestado un poco de la respuesta de Eric usando stylesheet_directory se vería esto (acorté el ejemplo para que no se envuelva):

<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />

Para ilustrar este punto escribí un archivo independiente rápida que puede caer en la raíz de su sitio web como test.php y correr para ver lo que da salida. Primera carrera con un tema regular como TwentyTen ejecute con un tema de los niños:

<?php
/*
* test.php - Test the difference between Regular and Child Themes
*
*/

include "wp-load.php";

$bloginfo_params = array(
    'admin_email',
    'atom_url',
    'charset',
    'comments_atom_url',
    'comments_rss2_url',
    'description',
    'home',
    'html_type',
    'language',
    'name',
    'pingback_url',
    'rdf_url',
    'rss2_url',
    'rss_url',
    'siteurl',
    'stylesheet_directory',
    'stylesheet_url',
    'template_directory',
    'template_url',
    'text_direction',
    'url',
    'version',
    'wpurl',
);

echo '<table border="1">';
foreach($bloginfo_params as $param) {
    $info = get_bloginfo($param);
    echo "<tr><th>{$param}:</th><td>{$info}</td></tr>";
}
echo '</table>';

Si usted nota cosas que puede notar que hay mucho más de lo que se puede pasar a bloginfo() y get_bloginfo(); estudiar el código y la pantalla de abajo para las ideas.

En cuanto a la pantalla se puede ver que los rendimientos stylesheet_directory lo mismo que 'template_directory' para un tema normal, pero un valor diferente, y probablemente el valor que necesita para un tema menor.

Los valores de retorno de get_bloginfo () con y sin un tema infantil en WordPress
(fuente: mikeschinkel.com )

Para mayor claridad la captura de pantalla, wp30.dev es un dominio que sólo se ejecuta en mi equipo local. Es actualmente una instancia de WordPress 3.0.1 y está configurado en 127.0.0.1 (igual que localhost) en mi portátil y lo uso para probar ejemplos ad-hoc como este. Solía ?? VirtualHostX para su conveniencia en el Mac OS X para ayudarme a configurar los dominios .dev privadas no enrutables pero cualquier persona puede hacerlo manualmente editando el archivo y los anfitriones de la computadora ? httpd.conf.

Por cierto, en caso de que no están familiarizados con Temas Niño donde hay otros dos respuestas WordPress que pueden ayudar:

Toda la estructura del tema se basa en la parte superior de las dos opciones - template (manteniendo namre carpeta de temas de los padres) y stylesheet (sosteniendo el tema niño namr carpeta). Si no hay un tema niño utiliza estos son los mismos.

Para tener la flexibilidad de los filtros, en lugar de la opción de acceder directamente, no son consecuencia get_template() y get_stylesheet()

.

Ahora lo único que falta es combinar los temas de carpetas ubicación. Esto se puede hacer con get_theme_root_uri() y de nuevo convenientemente envuelto en get_template_directory_uri() y href="http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri"> get_stylesheet_directory_uri() .

[get_]bloginfo() con template_directory o stylesheet_directory argumentos meramente envuelve estos y hay pocas razones para usarlo así. Yo diría que sólo es confuso por tener argumento diciendo directorio (comúnmente se refiere a las rutas locales), pero volviendo URL.

Sumario:

  • get_template_directory_uri() uso para referirse a única o padre tema
  • Uso get_stylesheet_directory_uri() a única o un niño tema

Yo uso este (dirname(get_bloginfo('stylesheet_url')))

Licenciado bajo: CC-BY-SA con atribución
scroll top