[DUDA] Insertar código PHP

Estado
No está abierto para más respuestas.

Totemizado

Oro Blanco
Usuario de Bronce
Mensajes
823
Puntuación de reacción
0
Hola,

he hecho una simple calculadora en PHP para poner en mi blog, pero no sé como insertarlo. He probado a subirlos directamente a alguna de las carpetas de wordpress, pero al ir a la dirección, no encuentra la página.

Son dos archivos, uno donde se introducen las variables y el otro que hace y ofrece el resultado. ¿Cómo podría hacerlo?

Gracias por adelantado.
 

Bleed

Diamante
Usuario de Bronce
Mensajes
2,408
Puntuación de reacción
1
No te recomiendo hacerlo, pero Wordpress tiene algunos plugins para ejecutar PHP, como Shortcode Exec PHP.

Si subiste los archivos al hosting, puedes acceder a ellos directamente insertando la url correcta http://tuweb.com/wp-content/calculadora.php o como sea. Si no encuentra la pagina es porque no pusiste la ruta correcta.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Crea una página que se llame calculadora desde wp-admin y déjala en blanco, ve a tu platilla y crea un archivo php que se llame page-calculadora.php llama al header al footer etc como en los demás templates y entre ellos inserta tu código de calculadora o haz un include

Saludos
 

Totemizado

Oro Blanco
Usuario de Bronce
Mensajes
823
Puntuación de reacción
0
En realidad, lo que más se ajustaría a mis necesidades sería que Wordpress fuera capaz de leer código php en las entradas. No sé si habrá algún plug-in que permita esto (¿El que dijiste, Bleed, sirve para esto? Por cierto, ¿Por qué no lo recomiendas?).

EDIT: Buscando en google he visto que esto no es recomendable, así que lo descarto.

Si no se puede hacer, pues tendré que solucionarlo con una página a parte. Dejaré preparado lo que me dijo lobogris por si no se puede hacer lo de las entradas, a ver qué tal.

EDIT: ¿Alguien podría desarrollar un poco la información que lobogris dio? Ando un poco perdido, ya que el editor de themes no me permite añadir nuevos archivos.
 
Última edición:

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
En realidad, lo que más se ajustaría a mis necesidades sería que Wordpress fuera capaz de leer código php en las entradas. No sé si habrá algún plug-in que permita esto (¿El que dijiste, Bleed, sirve para esto? Por cierto, ¿Por qué no lo recomiendas?).

EDIT: Buscando en google he visto que esto no es recomendable, así que lo descarto.

Si no se puede hacer, pues tendré que solucionarlo con una página a parte. Dejaré preparado lo que me dijo lobogris por si no se puede hacer lo de las entradas, a ver qué tal.

EDIT: ¿Alguien podría desarrollar un poco la información que lobogris dio? Ando un poco perdido, ya que el editor de themes no me permite añadir nuevos archivos.

Y por qué no me preguntas a mí? :roto2:

Mira, ve a wp-content la carpeta de tu theme, deberías tener una archivo single.php y un page.php, los cuales se utilizan para mostrar entradas y páginas respectivamente.

Pongamos que quieres mostrar tu calculadora en una entrada (o post como lo quieras llamar, pero distínguela de página) simplemente debes ir a functions.php y dar soporte al formato "calculadora", ¿cómo se hace? busca por add_theme_support, si no lo tienes añade:

PHP:
add_theme_support( 'post-formats', 'calculadora' );

o si ya lo tienes añade calculadora al array de formatos soportados

PHP:
add_theme_support( 'post-formats', array('opt1', 'opt2', 'calculadora') );
(poniendo que opt1 etc son formatos que vienen ya definidos)

Después en tu archivo single.php es probable que tengas algo así

PHP:
<?php while ( have_posts() ) : the_post(); ?>
  <?php get_template_part( 'content' ); ?> //lo cual llama a content.php
<?php endwhile; ?>

o tal vez si tenías dado el soporte a formatos en functions.php algo así

PHP:
<?php while ( have_posts() ) : the_post(); ?>
  <?php get_template_part( 'content', get_post_format() ); ?> //lo cual llama a content-(y el formato).php
<?php endwhile; ?>


Bien, si lo tienes de la primera manera cámbialo a la segunda, sólo modifica lo que explico puede que en tu código tengas más cosas, dejalas tal cual

Y ahora crea la página content-calculadora.php, la cual será la que muestre la calculadora en una entrada, por ejemplo:

PHP:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  <header>
    <h1><?php the_title(); ?></h1>
    <?php if ( has_post_thumbnail() ) : ?>
      <div>
        <?php the_post_thumbnail(); ?>
      </div>
    <?php endif; ?>
  </header>
  <div>
  <?php the_content(); ?>
  <?php get_template_part( 'calculadora' ); ?> //aqui llamas a tu archivo calculadora.php o lo puedes incluir directamente como quieras
  </div>
  <footer>
    <?php comments_template(); ?>
  </footer>
</article>

Ahora ve a tu wp-admin y crea una nueva entrada en el panel de la derecha verás la pestaña formatos, selecciona calculadora y ya está, tu entrada utilizará el código de arriba.



Por el contrario si quieres hacerlo en una página en vez de entrada, coge tu archivo page.php cópialo y añade o haz un include o get_template_part() a calculadora, llama ese archivo page-calculadora, ve a tu wp-admin, crea una nueva página llamada calculadora, esa página mostrará el template page-calculadora.php


Dicho esto añado que Wordpress te lee PHP donde sea, es ultramodificable, por ello que cada plantilla es un mundo, porque hay muchas maneras de hacer la misma cosa, lo que he dicho hay más maneras de hacerlo. Ahora te recomendaría que te pases por su documentación porque ahí puedes aprender como funciona todo muy bien.

Saludos
 

Totemizado

Oro Blanco
Usuario de Bronce
Mensajes
823
Puntuación de reacción
0
Y por qué no me preguntas a mí? :roto2:

No quería abusar, y más sabiendo que cuando se me explicara, aun así tendría que preguntar alguna cosa más xD Gracias por tu respuesta, te planteo una última dudilla:

En functions.php no tenía el add_theme_support. Lo he añadido antes de la última llave (}).

En page.php tengo:
Código:
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

     <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	 <?php include(TEMPLATEPATH . '/includes/postBody.php'); ?>
     </div><!-- #post-## -->
  <?php endwhile; ?>

He probado a añadir el código que decías a parte de este, y a borrar este y a poner el otro. En ninguno de los dos casos noto cambio alguno a la hora de escribir una entrada (nunca he visto una pestaña de formatos a la hora de escribir una entrada).

Como ves, soy totalmente newbie en el tema, he estado googleando pero no encuentro más que recomendaciones de plug-ins, y después de leer que no es buena idea porque provoca fallos de seguridad, mi único recurso es dar por culillo por aquí.

PD: No sé si tendrá algo que ver, pero lo añado por si acaso, el theme que utilizo es el CTR.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
No quería abusar, y más sabiendo que cuando se me explicara, aun así tendría que preguntar alguna cosa más xD Gracias por tu respuesta, te planteo una última dudilla:

En functions.php no tenía el add_theme_support. Lo he añadido antes de la última llave (}).

En page.php tengo:
Código:
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

     <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	 <?php include(TEMPLATEPATH . '/includes/postBody.php'); ?>
     </div><!-- #post-## -->
  <?php endwhile; ?>

He probado a añadir el código que decías a parte de este, y a borrar este y a poner el otro. En ninguno de los dos casos noto cambio alguno a la hora de escribir una entrada (nunca he visto una pestaña de formatos a la hora de escribir una entrada).

Como ves, soy totalmente newbie en el tema, he estado googleando pero no encuentro más que recomendaciones de plug-ins, y después de leer que no es buena idea porque provoca fallos de seguridad, mi único recurso es dar por culillo por aquí.

PD: No sé si tendrá algo que ver, pero lo añado por si acaso, el theme que utilizo es el CTR.

El theme da igual, lo que pasa que cada uno es un mundo y hay que programar sobre él siguiendo sus directrices.

Lo de add_theme_support es esto Function Reference/add theme support « WordPress Codex.

Visto tu page.php lo que tienes es un div que tiene el id post-(id del post) + la clase del post que wordpress genera automáticamente y en el llama a postBody.php que incluirá algo así como el último código que escribí en el mensaje anterior o puede que incluso llame a otro archivo.php, sea como sea busca donde llama al contenido (<?php the_content(); ?>) eso será el cuerpo de la entrada, es decir el texto que hayas ecrito imágenes etc sin título, y a continuación o antes como quieras llama a la calculadora lo cual hará que aparezca la calculadora antes o después del contenido de esa página. O copia en el archivo page-calculadora.php el contenido de page.php + postBody.php y añade lo que debas para que la página miblog.com/calculadora abra ese template

Es simple, pero como cada theme es una estructura, no se puede explicar exacto sin conocer el theme.

Te recomiendo que vayas a los docs de WordPress Main Page « WordPress Codex y busques lo que necesitas, al final irás encadenando explicaciones porque una te llevará a otra y encontrarás más de una manera de hacerlo, sin tener una simple idea de como funciona algo no se puede tocar porque probablemente no lograrás nada...

Ya dices cual fue la solución final ;)

Saludos
 

Totemizado

Oro Blanco
Usuario de Bronce
Mensajes
823
Puntuación de reacción
0
Bueno me dí por vencido. Finalmente instalé el plugin que más confianza me dio para poder seguir trabajando, y cuando esté más desenvuelto en el tema probaré de hacerlo de esta forma más segura. Prometo avisarte cuando lo haga para que no sientas que has perdido el tiempo explicándolo para nada jeje

Muchas gracias.
 
Estado
No está abierto para más respuestas.
Arriba