Как запустить мою программу php через все сообщения? - PullRequest
1 голос
/ 22 февраля 2020

Я создал следующую php программу для установки (перезаписи) записей тегов по определенному мета-значению. Сама программа работает нормально, пока я установил ее в заголовке. php.

<?php if ( is_single() ) : ?>
<?php
global $post;
$post_id = $post->ID;
$tags[] = get_post_meta( $post->ID, 'aaaaa', true );
$tags[] = get_post_meta( $post->ID, 'bbbbb', true );
$tags[] = get_post_meta( $post->ID, 'ccccc', true );
$tags[] = get_post_meta( $post->ID, 'ddddd', true );  
$tags = array_unique( array_filter( $tags ) ); 
get_post_meta results
wp_set_post_tags($post_id , $tags, false );

?>
<?php endif; ?>

Теперь я обнаружил, что моя программа не влияет на теги, пока я не открываю статьи (посты) браузером. У меня есть много сообщений, которые мне нравятся, чтобы изменить теги моей программой. Есть ли способ запустить мою программу через сообщения без открытия браузером?


Это другой код, который я пробовал. Я установил этот код в заголовке. php как выше код. Это работает как приведенный выше код. Мне все еще нужно открыть так много постов. Есть ли способ запустить программу через все сообщения в фоновом режиме?

<?php if (is_singular('post')): ?>
<?php
global $post;
$post_id = $post->ID;
$tags[] = get_post_meta( $post->ID, 'aaaaa', true );
$tags[] = get_post_meta( $post->ID, 'bbbbb', true );
$tags[] = get_post_meta( $post->ID, 'ccccc', true );
$tags[] = get_post_meta( $post->ID, 'ddddd', true );  
$tags = array_unique( array_filter( $tags ) ); 
get_post_meta results
wp_set_post_tags($post_id , $tags, false );

?>
<?php endif; ?>

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

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

$args = array(
    'post_type' => 'post'
);

$post_query = new WP_Query($args);
if($post_query->have_posts() ) {
    while($post_query->have_posts() ) {
        $post_query->the_post();

        $post_id = get_the_ID();
        $tags[] = get_post_meta( $post->ID, 'aaaaa', true );
        $tags[] = get_post_meta( $post->ID, 'bbbbb', true );
        $tags[] = get_post_meta( $post->ID, 'ccccc', true );
        $tags[] = get_post_meta( $post->ID, 'ddddd', true );  
        $tags = array_unique( array_filter( $tags ) ); 
        get_post_meta results
        wp_set_post_tags($post_id , $tags, false );
    }
}
0 голосов
/ 22 февраля 2020

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

if (is_singular('post')) {

//your code here...

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...