WordPress цикл постов в пользовательской странице PHP

Я пытаюсь перебрать посты на пользовательской странице php, но независимо от того, что я делаю, посты не найдены
вот код, который я написал в my-custom-page.php

<?php
require_once("/wp-load.php");
get_header();?>
<div id="blog">
<?php if(have_posts()) : ?>
<?php echo"anything"; ?>
<?php endif; ?>
</div>
<?php get_footer();?>

0

Решение

Вам потребуется wp-load.php через полный путь к этому файлу.

Твердо закодированный пример:

require_once("user/home/public-html/wordpress/wp-load.php");

Пример в мягком коде (ваш файл находится в том же каталоге, что и WordPress):

require_once(dirname(__FILE__)."/wp-load.php");

Вы также должны запросить сообщения, прежде чем отображать их. Итак, вам нужно добавить эту строку в ваш код:

query_posts('post_type=post');

Аргументы запроса могут отличаться в зависимости от того, что вы хотите отобразить. Некоторые из них являются переменными-членами класса WP_Post. Идти к https://codex.wordpress.org/Class_Reference/WP_Post для справки.

Здесь у вас есть переписывание вашего кода, который отображает названия 30 последних опубликованных сообщений:

<?php
require_once(dirname(__FILE__)."/wp-load.php");
query_posts('post_type=post&showposts=30');
get_header();?>
<div id="blog">
<?php
if (have_posts()) :
while (have_posts()) :
the_post();
the_title();
echo '<br />';
endwhile;
else :
echo 'Sorry, no posts found.';
endif;?>
</div>
<?php get_footer();
1

Другие решения

wp_count_posts:
@return object Количество постов для каждого статуса.

Вы пытаетесь повторить объект, который заканчивается фатальной ошибкой. Кроме того, если вы хотите видеть все сообщения, the_post не прав. Ищите это по ссылке на функцию: https://codex.wordpress.org/Function_Reference/the_post. Я бы сделал это другим (Google что-то вроде «получить все сообщения»).

0

как предложил г-н Карлос в комментариях, я передал параметр методу have_posts, и теперь он работает!
этот код работал для меня

`require('./wp-blog-header.php');
get_header();?>
<div id="blog">
<?php if(have_posts(array('post_type' =>'page'))
{
echo"anything";
}?>
</div>
<?php get_footer();?>`
0

если вы будете использовать код внутри вашей темы
использовать тот же код г-на Карлоса, но без директ

require_once("/wp-load.php");
0