ошибка в вставке WordPress в пользовательское значение таблицы пустое или нулевое

я хочу получить заголовок всего поста из поста WordPress и вставить в пользовательскую таблицу, но он всегда вставляет нулевое значение, почему

<?php
global $post;
$args = array( 'numberposts' => -1 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) :
setup_postdata( $post );
insert_p_now(the_permalink());
endforeach;
wp_reset_postdata();

function insert_p_now($a)
{
global $wpdb;
$wpdb->insert('wp_posttable', array('post_title' => $a), array('%s'));
}
?>

2

Решение

При вызове функции вы не передаете заголовок сообщения в качестве аргумента.

insert_p_now(the_permalink());

Это означает, что в вашей функции

function insert_p_now($a)
{
global $wpdb;
$wpdb->insert('wp_posttable', array('post_title' => $a), array('%s'));
}

Значение $a равно the_permalink() что, конечно, не ваш post_title.
Если все, что вы хотите сделать, это сохранить заголовок сообщения в пользовательском массиве, возможно, это то, что вы ищете:

<?php

global $wpdb;

$args = array( 'numberposts' => -1 );
$allposts = get_posts( $args );

foreach ( $allposts as $curpost ) :
$wpdb->insert('wp_posttable', array('post_title' => $curpost->post_title), array('%s'));
endforeach;

?>

Конечно, вы можете использовать отдельную функцию, если будете повторно использовать функцию «вставить в пользовательскую таблицу».

Надеюсь, это поможет!

0

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

Других решений пока нет …

По вопросам рекламы [email protected]