web-dev-qa-db-fra.com

Impossible d'obtenir des pièces jointes en dehors de Wordpress?

Ma page (en dehors de l'installation de wordpress) commence comme ceci:

global $wpdb, $wp_query; 
define('WP_USE_THEMES', false);
include_once 'Word/wp-blog-header.php';

$args = array(
  'posts_per_page'  => 10,
  'post_type'       => 'post'
);
$queryObject = new WP_Query($args);

Je commence la boucle comme suit:

<?php while (have_posts()): the_post(); ?>

Dans la boucle j'appelle ça:

<?php the_post_thumbnail();?>

Mais rien n'est retourné.

print_r(get_post(4));

(Où 4 est l'identifiant d'une pièce jointe) ne renvoie également rien.

Appel

<?php the_content(); ?>

renvoie le contenu de la publication, moins la galerie - ce qui n’est pas rendu non plus, mais le shortcode est supprimé.

Dans wordpress, tout fonctionne bien, à l'extérieur, il semble que les pièces jointes soient simplement ignorées. Pourquoi cela arrive-t-il? Y at-il un travail autour? Y a-t-il un problème avec ma requête?

.

.

.

J'ai trouvé une solution alternative à mon problème initial - en utilisant un sous-répertoire, mais je pense toujours que c'est une question valide. L'original est ici:

J'utilise le moteur wordpress en tant que système de gestion de contenu pour un site Web qui ne peut pas être intégré pour le moment à cause de contraintes de temps (mais le sera éventuellement). J'ai donc besoin de choses comme poster des vignettes en dehors du répertoire wordpress. . J'utilise les éléments suivants pour configurer ma boucle:

global $wpdb, $wp_query; 
define('WP_USE_THEMES', false);
include_once 'Word/wp-blog-header.php';
$args = array(
  'posts_per_page'  => 10,
  'post_type'       => 'leather_swatch'
);
$loop = new WP_Query($args);

if ($loop->have_posts()) : while ($loop->have_posts()) : $loop->the_post();

Cependant, dans index.php cela fonctionne, mais ne renvoie rien dans ma boucle externe:

$thumb = get_post_thumbnail_id($post->ID);
echo '<img src="'.wp_get_attachment_url($thumb).'" />';

Ce que je trouve vraiment étrange, c'est que

print_r(get_post($thumb)); 

retourne un objet post dans le répertoire wordpress, mais rien dans ma boucle personnalisée - il ne reconnaît pas les pièces jointes. Cependant, je peux toujours imprimer le contenu de mon type de message dans la boucle personnalisée à l'aide de la fonction standard the_content ().

Quelqu'un peut-il éclairer ce qui se passe/comment je pourrais résoudre ce problème? Je ne souhaite pas vraiment utiliser des métadonnées personnalisées pour répliquer les fonctionnalités standard.

2
Gaffen

Votre ancien code semble bien fonctionner, s'il posait problème - quelque chose d'autre le causait.

Votre version mise à jour semble prendre du recul car votre boucle est écrite comme une boucle principale et n'utilise pas $queryObject que vous avez configuré.

1
Rarst