Přehled odpovědí
-
AutorPříspěvky
-
Nakonec přepsáno takto:
function woo_new_product_tab_content() { global $post; $productTagsTerms = wp_get_post_terms($post->ID, 'product_tag'); $questionTags = array_map(function($productTagTerm) { return $productTagTerm->slug; }, $productTagsTerms); $args = array( 'post_type' => 'dwqa-question', 'showposts' => 10, 'tax_query' => array( array( 'taxonomy' => 'dwqa-question_tag', 'field' => 'slug', 'terms' => $questionTags, ) ) ); $query = new WP_Query($args); if ($query->have_posts()) { echo '<ul>'; while ($query->have_posts()) { $query->the_post(); echo '<li>' . get_the_title() . '</li>'; } echo '</ul>'; } else { echo 'no posts found'; } wp_reset_postdata(); } add_filter('woocommerce_product_tabs', 'woo_new_product_tab');
Tak nakonec zkouším DWQA forum, ale mám problém, nebyl by mi někdo ochotný poradit?
Mám dva typy článků.
1) dwqa-question – otázky (question) z DWQA pluginu
2) produkt (product) – z Woocommerce
Chci v detailu produktů zobrazit otázky týkající se daného produktu na základě tagůZkouším dělat intersection dvou polí, to je OK, ale pak
$rquery = new WP_Query($rargs) mi nevezme jen tagy z pole, ale vypíše všechny otázky z fóra (max 10)
Vše dávám do functions.phpfunction woo_new_product_tab_content() { // DWQA TAGS $dwqa_slugs = array(); $dwqa_tags = get_terms('dwqa-question_tag'); if (!empty($dwqa_tags) ) { foreach((array) $dwqa_tags as $dwqa_tag) { $dwqa_slugs[] = $dwqa_tag->slug; } } // PRODUCT TAGS $tag_slugs = array(); $product_tags = get_the_terms($post->ID, 'product_tag'); if (!empty($product_tags) ) { foreach((array) $product_tags as $tag) { $tag_slugs[] = $tag->slug; } } // INTERSECT $result = array_intersect($dwqa_slugs, $tag_slugs); $rargs = array( 'post_type' => 'dwqa-question', 'showposts' => 10, 'slug' => $result ); // WP_QUERY $rquery = new WP_Query($rargs); if ($rquery->have_posts()) { echo '<ul>'; while ($rquery->have_posts()) { $rquery->the_post(); echo '<li>' . get_the_title() . '</li>'; } echo '</ul>'; } else { echo 'no posts found'; } // Restore original Post Data wp_reset_postdata(); } add_filter('woocommerce_product_tabs', 'woo_new_product_tab');
Ad 2) load_theme_textdomain() je načítána standardně (jen jsem neuváděl celé). Kam tedy umístit tu funkci pro načítání “mo” souboru (load_custom_text), umístil jsem ji ve functions.php pod load_theme_texdomain(), resp. pod
add_action( 'after_setup_theme', 'twentytwelve_setup' );
Pokud nadefinuji jazykovou konstantu třeba jako
<?php _e('Nextx', 'nazevtematu'); ?>
Udělám k tomu jazykový soubor
wp-content\languages\themes\nazevtematu-cs_CZ.mo
Tak to nefunguje. Co dělám špatně?
Add 1) Máte pravdu, protože veškeré konstanty jsou definovány s řetězci twenty twelve např. takto:
<?php esc_attr_e('Skip to content', 'twentytwelve'); ?>
To mne ale netrápí, to bych chtěl zachovat, ale zajímá mne spíš bod 2.Add 2) Nefunguje mi to zřejmě z důvodu, že je textdomain stále twentytwelve, já tu funkci z bodu 2) načítám ve functions.php za funkcí:
function twentytwelve_setup() { load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' ); }
Kde se načítá textdomain a pole array(‘nazevtematu’,..), vůbec neobsahuje “nazevtematu”.
Nevíte jak to vyřešit nebo elegantněji udělat?
Díky za rady.Dobrý den,
1) vím, že jazykové soubory stačí dát do dresáře wp-content/languages/themes/ , ale když změním ve function.php load_theme_texdomain na cokoliv jiného, tak se takový jazykový soubor vůbec nenačte (pojmenuji ho samozřejmě nově na nazevtematu-cs_CZ.mo). Je to třeba ještě někde jinde změnit? Používám jako výchozí twenty twelve, kterou si přetvořím k obrazu svému.2) Pokud chci přidat další jazykový soubor pomocí load_textdomain_mofile, tak se mi to nedaří, zkoušel jsem následující:
if (!function_exists('load_custom_text') ) { // for filter function load_custom_text( $mofile, $domain='' ) { //only do for the plugins/themes you want if (!in_array($domain, array('nazevtematu', 'nazevtematu2'))) return $mofile; $pathinfo = pathinfo($mofile); $custom_mofile = WP_CONTENT_DIR."/languages/" . $pathinfo["basename"]; if (file_exists($custom_mofile)) return ($custom_mofile); else return $mofile; } } add_filter ('load_textdomain_mofile','load_custom_text',10,2 );
Ale nefunguje mi to, prosím o radu.
Byl to přesně ten problém, měl jsem tam původně WP 3.5, pak aktualizoval na 3.6 a čeština zůstala z WP 3.5, aktualizoval jsem češtinu na 3.6.1 a už je to OK, díky
Žádný soubor searchform.php tam nemám.
Funkce get_search_form() je definována přece v souboru general-template.php
Používám WP 3.6, a kopii Twenty Twelve upravenou ke svému obrazu.
A když vytvořím searchform.php ve svém tématu:
<form role=”search” method=”get” id=”searchform” class=”searchform” action=”<?php echo home_url( ‘/’ ); ?>”>
<div>
<label class=”screen-reader-text” for=”s”>Search for:</label>
<input type=”text” value=”” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”Search” />
</div>
</form>
tak to samozřejmě generuje přes to, ale Čeština stále nic. (leda bych to přepsal do češtiny).
Ani v překladu není překlad pro searchform.php, jen v twenty eleven:
#: searchform.php:11 searchform.php:12 searchform.php:13
msgid “Search”
msgstr “Hledat”
Co tedy mám udělat, kopii překladových souborů
twentytwelve-cs_CZ.mo
twentytwelve-cs_CZ.po
na:
mojetema-cs_CZ.mo
mojetema-cs_CZ.po
a do jetema-cs_CZ.po přidat
searchform.php:6 // číslo je řádek v php?
msgid “Search”
msgstr “Hledat”
Nebo jak postupovat?
Dobrý den,
když zavolám
<?php get_search_form(); ?>
, proč není v Češtině? Jde to nějak přepnout, aniž bych to musel nahrazovat přímo v té funkci v general-template.php ? DíkyAd Patokryje, co je to za plugin? Je to nějaký přepracovaný nebo vlastní?
Na ten jsem se díval, vyzkouším, i když má docela staré datum aktualizace.
Dobrý den, mám podobný problém.
Nemohu aktualizovat pluginy – jen kopírováním přes FTP, taktéž nemohu přidávat obrázky do uploads. Práva jsou nastaveny na 2755 a nemohu to změnit na 775. Ale ta práva 2755 by měla být správně ne? Tak kde je problém?
Soubor „abc.png“ se kvůli chybě nepodařilo nahrát
Nahraný soubor nemohl být přesunut do /www/doc/www.domena.cz/www/wp-content/uploads.
Také mají zapnutá safe mode.
Jak jiné? Ukázka?
Každopádně je potřeba vybírat fonty, co podporují české znaky a nepoužívat cufony apod. pro nahrazování fontů. Nejlépe používat Google Webfonts (http://www.google.com/webfonts) zvolit Latin extended
Používáte někdo qtranslate? Jak jste vyřešili špatný date format? Máte nějaké řešení, jak to opravit, aby se názvy měsíců zobrazovaly ve správném jazyku?
Takže plugin Page List v nové verzi řeší většinu toho, co jsem potřeboval. [pagelist_ext]
Použil jsem ještě plugin Page Excerpt Plugin, který přímo vytvoří pole pro perex, ale nevím, jak jej vypsat. Resp, jak to upravit šablonu, aby se vypisoval v každé stránce (pokud je vyplněný):
<?php get_template_part(‘content’, ‘single’); ?>
A pak bych potřeboval vypsat nadpisy a perexy v nadřazené stránce – jak upravit, zda se jedná o nadpis a perex ve funkci, kterou dám do nadřazené stránky:
<?php $query = new WP_Query( ‘post_parent=9’ ); ?>
Tímto se mi nic nevypíše.
A ještě jedna věc, co s tím souvisí, zkoušel jsem uživatelské pole a nemohu ho vypsat:
Na podstránce jsem si vytvořil uživatelské pole např.: vypisnadpisu s obsahem Domácnost
a zkusil jsem vypsat pomocí:
<?php if (get_post_meta($post->ID, ‘vypisnadpisu’, true) ) {
$vysledek = get_post_meta($post->ID, ‘vypisnadpisu’, true);
echo ““.$vysledek.”“;
}
?>
A nejde mi to vypsat (používám Exec PHP, tak to dávám přímo do stránky).
Následně to pak potřebuji vypsat v nadřazené úrovni.
Díky za rady
A funguje Google Ajax Translation ve W 3.2.1? Podle většiny uživatelů to vypadá, že ne, zatím jsem nezkoušel
Dobrý den a kdy bude dostupný WPML k češtině? Jak to s ním vypadá?
Nevím, jak to jinak napsat:
1) Potřebuji do každé stránky (nikoliv příspěvku) v administračním rozhraní vložit textové pole mezi nadpis a obsah stránky, tzv. perex.
2) A ten pak nějak dynamicky vypsat z každé podstránky do nadřazené stránky (olomoucký kraj), vypsat tedy nadpis podstránek a perex.
Používám to pro ruční vkládání obrázků do článku (single), resp. cesty k obrázkům do nějakého adresáře. Aby ta cesta zůstala zachována a nebyla absolutní po přemístění webu jinam. Vím, že existuje nějaký plugin, který to pak nahradí.
Díky za radu, funguje to.
Vypisuji to přímo do článku v editoru (html) s pluginem Exec-PHP
-
AutorPříspěvky