Intereting Posts
Предотвращение создания нескольких изображений в 20 шаблонах Каково реальное намерение для admin-post.php? используйте jQuery.load (), чтобы включить php-файл в div, wp_query () является частью файла php Изменение порядка отображения пользовательских полей на панели управления Где код Featured Image, хранящийся в WP? Пользовательский тип разбивки по типу на Single.php? Добавление пользовательских полей на странице Многопользовательские пользователи Что такое соглашения о схеме $ table_prefix Автоматически добавлять категорию в настраиваемый тип сообщения, используя категорию slug Поиск столбцов по дате или имени автора Тема или плагин: где я должен писать свой код? Добавление виджетов панели инструментов для отображения – статистика пользовательских сообщений, информация из других плагинов Форматирование родителя / ребенка в списке сообщений типа персонализированного сообщения Условное регулярное выражение в add_rewrite_rule () для конкретных фильтров запросов и разбиения на страницы Отправлять почту пользователю только один раз, когда выбран определенный флажок и обновлен из профиля, обновленного администратором

get_permalink () всегда возвращает пустой

У меня внезапно возникла ошибка в моем плагине, и я не знаю, что может быть причиной этого. Этот код терпит неудачу, поскольку get_permalink() возвращается пустым:

 $select = "SELECT * FROM `".DB_NAME."`.`wp_posts` WHERE `post_status` = 'publish'"; $result = mysql_query($select); while($meta_posts = mysql_fetch_array($result, MYSQL_ASSOC) ){ $menu .= "<option value=\"".get_permalink($meta_posts['ID'])."\">".$meta_posts['post_title']."</option>\n"; } 

Он работал очень хорошо, все, что он делает, – это выпадающее меню всех опубликованных сообщений / страниц WP. Теперь я получаю раскрывающийся список с названиями, но в параметре нет постоянной ссылки.

У кого-нибудь есть идеи, почему get_permalink() будет пустым? Я даже пробовал жестко кодировать в него известный пост, и он все еще пуст.

Во-первых, вы должны использовать get_posts вместо необработанного SQL-запроса. Или, по крайней мере, используйте $wpdb .

 <?php $posts = get_posts( array( 'post_status' => 'publish' 'numberposts' => -1 ) ); 

Затем попробуйте передать весь объект post в get_permalink , который сохраняет некоторые запросы к базе данных .

 <?php foreach( $posts as $p ) { $link = get_permalink( $p ); // do stuff here... } 

Единственное, что я видел в get_permalink которое может вызвать пустую строку, которую он проверяет на пустой идентификатор сообщения. Попробуйте выше, и посмотрите, работает ли он на то, что вам нужно.

Попробуй это:

 query_posts( 'post_status=publish&posts_per_page=-1' ); while ( have_posts() ) : the_post(); $menu .= "<option value=\"".get_permalink(get_the_ID())."\">".get_the_title()."</option>\n"; endwhile;