Taxonomy linked to pages

时间:2017-12-22 作者:Stefano

在我的产品页面中,我添加了许多自定义分类法。其中之一就是被称为“colecciones”的分类学。例如,您可以在此URL中看到:https://www.editorialufv.es/catalogo/comunicacion-clinica/ 每本书都是一个集合的一部分(西班牙语为Coleccion)。

我希望产品页面中出现的链接将重定向到我对每个收藏所做的页面,而不是商店页面过滤器。在这种情况下,Coleccion被称为“relación clínica”,他的URL是:https://www.editorialufv.es/coleccionesufv/relacion-clinica/

感谢你们中的一位,我为作者的名字做了类似的事情:现在他们链接到成员页面,而不是商店过滤器页面。为了做到这一点,我修改了函数。php方式:

add_action( \'woocommerce_single_product_summary\', \'show_product_autor\', 24 );
function show_product_autor(){

// get this woo-comm\'s product author
$authors = wp_get_post_terms( get_the_ID(), \'autor\' );

// we know it\'ll just be one author, so use first object of array
$author = array_pop($authors);

// knowing the authors name, lets find the TEAM page
$authorTeamPg = get_page_by_title( $author->name, \'OBJECT\', \'team\' );

// now we know the authors page
$authorTeamPgLink = get_permalink( $authorTeamPg->ID);

// output
echo "<b>AUTOR: </b><a href=\'{$authorTeamPgLink}\'>{$author->name}</a>",\'<br />\';
}
现在,我尝试对集合的分类法执行相同的操作,但没有结果。以下是我的尝试:

add_action( \'woocommerce_single_product_summary\', \'show_product_colecciones\', 25 );

function show_product_colecciones(){

$collections = wp_get_post_terms( get_the_ID(), ‘Colecciones’ );

$collection = array_pop($collections);

$collectionPg = get_page_by_title ( $collection->name, ‘OBJECT’, ‘page’ );

$collectionPgLink = get_permalink( $collectionPg->ID);

echo “<b>COLECCIÓN: </b><a href=‘{$collectionPgLink}’>{$collection->name}</a>”, ‘<br />’;
}
分类法的代码如下:

$labels = array(
\'name\' => _x( \'Colecciones\', \'taxonomy general name\' ),
\'singular_name\' => _x( \'Colección\', \'taxonomy singular name\' ),
\'search_items\' =>  __( \'Buscar colecciones\' ),
\'all_items\' => __( \'Todas las colecciones\' ),
\'parent_item\' => __( \'Colección padre\' ),
\'parent_item_colon\' => __( \'Colección padre:\' ),
\'edit_item\' => __( \'Editar colección\' ), 
\'update_item\' => __( \'Actualizar colección\' ),
\'add_new_item\' => __( \'Añadir nueva colección\' ),
\'new_item_name\' => __( \'Nombre de la nueva colección\' ),
\'menu_name\' => __( \'Colecciones\' ),
);     

register_taxonomy(\'colecciones\',array(\'product\'), array(
\'hierarchical\' => true,
\'labels\' => $labels,
\'show_ui\' => true,
\'show_admin_column\' => true,
\'query_var\' => true,
\'rewrite\' => array( \'slug\' => \'colecciones\' ),
));
}
有人能帮我吗?

1 个回复
最合适的回答,由SO网友:inarilo 整理而成

在这段代码中,双引号和单引号都不是正确的类型。此外,分类名称是“colecciones”,带有一个小的“c”,但您使用了带有大写“c”的“colecciones”。匹配区分大小写。因此,您的功能代码应该是:

function show_product_colecciones(){

  $collections = wp_get_post_terms( get_the_ID(), \'colecciones\' );

  $collection = array_pop($collections);

  $collectionPg = get_page_by_title ( $collection->name, \'OBJECT\', \'page\' );

  $collectionPgLink = get_permalink( $collectionPg->ID);

  echo "<b>COLECCIÓN: </b><a href=\'{$collectionPgLink}\'>{$collection->name}</a>", \'<br />\';

}

结束

相关推荐

无法从Java脚本访问脚本本地化内的PHP数组

我有一个循环来检索具有特定meta_key 来自的用户值wp_user_meta 数据库,然后将其放入wp_localize_script 数组,这样我就可以使用Javascript访问数据并使用它来完成我的工作。不幸的是,当我运行循环并将所有结果放入变量中,然后尝试控制台时。记录结果,我在控制台中一行只得到字符串“Array”3次,而不是实际值。这是我的代码:功能。phpadd_action(\'wp_enqueue_scripts\',\'Load_Template_Scripts_wpa83855\