Php — Get_The_Id() Не Работает

  • Автор темы Ktveps3
  • Обновлено
  • 22, Oct 2024
  • #1

Вот мой цикл запроса:

 
 
 <?php
function get_the_ID() {

$post = get_post();

return ! empty( $post ) ? $post->ID : false;
}
?>
 

Я хочу позвонить $post для этого:

<div> <?php echo do_shortcode( '[svg-flag flag="' . get_post_meta( $post->ID, 'ozellikler_text', true ) . '"]' ); ?> </div>

Я попытался вызвать это так:

<?php $query = new \WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?>

код не вызывает его. Выдает ошибку:

Неустранимая ошибка: невозможно повторно объявить get_the_ID() (ранее объявленный в

#php #wp-запрос

Ktveps3


Рег
09 Sep, 2013

Тем
86

Постов
182

Баллов
642
  • 25, Oct 2024
  • #2

get_the_ID — это основная функция WordPress в глобальном пространстве имен, поэтому вы не можете создать вторую функцию с именем

 
 
 <?php
$my_post_meta = get_post_meta(

get_the_ID(), // use the built-in function

'ozellikler_text',

true
);

echo do_shortcode( '[svg-flag flag="' . $my_post_meta . '"]' );
 
as it won't know which one to use. You should just call get_the_ID() without writing a new function.

Для вашего примера кода вы можете сделать что-то вроде этого:

<?php $my_post_meta = get_post_meta( $query->$post->ID, // note this 'ozellikler_text', true ); echo do_shortcode( '[svg-flag flag="' . $my_post_meta . '"]' ); ||answer||

Во-первых, у вас нет такой вещи, как $query->$post->ID , you have $post->ID в вашем результате WP_Query:

<div> <?php echo do_shortcode( '[svg-flag flag="' . get_post_meta( get_the_ID(), 'ozellikler_text', true ) . '"]' ); ?> </div>

Во-вторых, как уже написано в тексте ошибки, переобъявить уже объявленную встроенную функцию нельзя. Просто используйте его:

get_the_ID
 

Styden


Рег
15 May, 2006

Тем
73

Постов
202

Баллов
597
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно