나는 wordpress posts 데이터베이스에 추가 정보를 추가해야하지만 그에 따라 추가 컬럼이없는 wordpress posts 테이블을 추가해야하는 웹 앱에서 작업하고 있습니다.Wordpress : wordpress posts 테이블에 필드 추가
그래서 내 필드를 삽입했습니다. favicon, image, domain JSON 피드의 기사를 모으기 때문에 기사에 대한 URL을 저장합니다.
그러나 데이터베이스에 게시물을 삽입하려고하면 게시물이 삽입되지만 기본 필드가 채워지는 동안 여분의 열은 공백으로 남습니다. 여기
내가 내가 이것은
게시물을 제가 아파치에서 얻을 오류 로그를 삽입으로 내 여분의 열을 채울 수있을 것 어떻게 데이터베이스
<?php
require(dirname(__FILE__)."/../../../wp-config.php");
$json_feed = "http://digitalrand.net/api/url_data/?key=xxxxxx&pass=xxxxxxx%";
$json = file_get_contents($json_feed);
$obj = json_decode($json, true);
foreach($obj as $article_array){
$url = $article_array['url'];
$domain = $article_array['domain'];
$favicon = $article_array['favicon'];
$title = $article_array['title'];
$category = $article_array['category'];
$large_summary = $article_array['summary'];
$sum = implode(',',$large_summary);
$images = $article_array['images'];
$i = reset($images);
$post = array(
'post_title' => $title,
'post_content' => $sum,
'post_status' => 'publish',
'post_type' => 'post',
'comment_status' => 'closed',
'post_category' => $category,
'post_template' => 'content.php'
);
wp_insert_post ($post, $wp_error);
$post_id = $wpdb -> insert_id;
$extra = array('post_image', 'post_favicon', 'post_domain');
$data = array($image, $favicon, $domain);
add_post_meta($post_id, $extra, $data, true);
?>
에 삽입하는 방법입니다
PHP Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php on line 880
PHP Stack trace:
PHP 1. {main}() C:\\wamp\\www\\abacus\\wp-content\\themes\\twentyfourteen\\data.php:0
PHP 2. add_post_meta() C:\\wamp\\www\\abacus\\wp-content\\themes\\twentyfourteen\\data.php:42
PHP 3. add_metadata() C:\\wamp\\www\\abacus\\wp-includes\\post.php:1731
PHP 4. wpdb->insert() C:\\wamp\\www\\abacus\\wp-includes\\meta.php:68
PHP 5. wpdb->_insert_replace_helper() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:1275
PHP 6. wpdb->prepare() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:1336
PHP 7. array_walk() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:1005
PHP 8. wpdb->escape_by_ref() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:1005
PHP 9. wpdb->_real_escape() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:952
PHP 10. mysql_real_escape_string() C:\\wamp\\www\\abacus\\wp-includes\\wp-db.php:880
게시물을 삽입했지만 post_meta가 데이터베이스에 삽입되지 않았기 때문에 나는 무엇을 잘못하고 있습니까?
모든 게시물이 표시되는 내 테마의 content.php 파일을 다음과 같이 추가했습니다.
<?php
$post_Id = get_the_ID();
$favicon_values = get_post_meta($post_id, 'post_favicon', true);
echo $favicon_values;
?>
각 기사에 favicon_values를 표시해야하는 이유는 무엇입니까?
$ post array ... check edit에서 이미지, favicon 및 도메인을 제거했습니다. – Mutuma
post_meta 필드 데이터를 배열에 추가했습니다 : 여분의 데이터와 배열에 삽입하려는 데이터 : $ data. 나는 wordpress codex와 add_post_meta를 정의한 방법으로 사용한다면, 키가 이미 존재하지 않는다면 새로운 커스텀 필드를 추가하거나 그렇지 않으면 커스텀 필드의 값을 그렇지 않으면 업데이트한다. 그래서 필자는 phpmyadmin에서 posts_meta 테이블의 필드를 생성 할 필요가 없다고 생각합니까? – Mutuma
그리고 새로운 post_meta 데이터를 콘텐츠 페이지에 어떻게 표시합니까? – Mutuma