Я пытаюсь перебрать посты на пользовательской странице 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();?>
Вам потребуется 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();
wp_count_posts:
@return object Количество постов для каждого статуса.
Вы пытаетесь повторить объект, который заканчивается фатальной ошибкой. Кроме того, если вы хотите видеть все сообщения, the_post не прав. Ищите это по ссылке на функцию: https://codex.wordpress.org/Function_Reference/the_post. Я бы сделал это другим (Google что-то вроде «получить все сообщения»).
как предложил г-н Карлос в комментариях, я передал параметр методу 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();?>`
если вы будете использовать код внутри вашей темы
использовать тот же код г-на Карлоса, но без директ
require_once("/wp-load.php");