如何通过一些元键设置帖子标签?

时间:2020-02-15 23:30:41

标签: wordpress

我准备了以下代码来覆盖几个meta键之后的post标签。 现在,它仅适用于一个元密钥。如何将其应用于几个元键?

<?php
global $post;
$post_id = $post->ID; 
$tags[] = get_post_meta($post_id, 'aaaaa', $single);
$tags[] = get_post_meta($post_id, 'bbbbb', $single);
$tags[] = get_post_meta($post_id, 'ccccc', $single);
$tags = array_unique( array_filter( $tags ) ); // here, adding array_filter to remove empty get_post_meta results
wp_set_post_tags( $post_id, $tags, false );
?>

通过以上代码,仅将元密钥aaaaa的元值用作发布标记,而忽略元密钥bbbbb和ccccc的元值。


在听到下面的建议后,我也尝试了此代码。

<?php
global $post;
$post_id = $post->ID;

$tags = get_post_meta($post_id, 'aaaaa', $single);
if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }

$tags = get_post_meta($post_id, 'bbbbb', $single);
if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }

$tags = get_post_meta($post_id, 'ccccc', $single);
if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }

wp_set_post_tags( $post_id, $tags, false );   

?>

然后,所有标签都消除了。

3 个答案:

答案 0 :(得分:0)

您的代码看起来正确,但是我建议您检查元密钥bbbbb和ccccc是否确实有价值,或者是否居于首位。因此,尝试显示类似的内容。

此外,尝试一下并尝试及时添加一个标签。 https://developer.wordpress.org/reference/functions/wp_add_post_tags/

赞:

    <?php
    global $post;
    $post_id = $post->ID; 

    $tag = get_post_meta($post_id, 'aaaaa', $single);
    if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }

    $tag = get_post_meta($post_id, 'bbbbb ', $single);
    if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }

    $tag = get_post_meta($post_id, 'ccccc', $single);
    if (!empty() ) { wp_add_post_tags( $post_id, $$tag ); }

    ?>

答案 1 :(得分:0)

希望这对您有所帮助。

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.fxstreet.com/economic-calendar/world-interest-rates')
time.sleep(10)
soup = BeautifulSoup(driver.page_source,"lxml")
time.sleep(10)

read_mores = driver.find_elements_by_xpath('//a[@href="#"]')

for read in read_mores:
    driver.execute_script("arguments[0].scrollIntoView();", read)
    driver.execute_script("(arguments[0]).click();", read)
    time.sleep(1)

    list_of_rows = []
    table = soup.select("table")[0] 
    for row in table.findAll('tr'):
        list_of_cells = []
        for cell in row.findAll(["th","td"]):
            list_of_cells.append(cell.text)
            list_of_rows.append(list_of_cells)

    for item in list_of_rows:
        print(' '.join(item))

    time.sleep(1)


driver.quit()

答案 2 :(得分:-1)

我将第三个参数更改为true(默认为false),它开始起作用!

像这样

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 = array_unique( array_filter( $tags ) );
wp_set_post_tags($post_id , $tags, false );
相关问题